新聞中心
Ceph 是一個(gè)高性能、可靠、可擴(kuò)展的開源存儲平臺。它是一個(gè)自由的分布式存儲系統(tǒng),提供了對象、塊和文件級存儲的接口,并可以不受單點(diǎn)故障的影響而運(yùn)行。

專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)平泉免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
在這個(gè)教程中,我將指導(dǎo)你在 ubuntu 16.04 服務(wù)器上安裝建立一個(gè) Ceph 集群。Ceph 集群包括這些組件:
- Ceph OSD (ceph-osd) - 控制數(shù)據(jù)存儲,數(shù)據(jù)復(fù)制和恢復(fù)。Ceph 集群需要至少兩個(gè) Ceph OSD 服務(wù)器。這次安裝中我們將使用三個(gè) Ubuntu 16.04 服務(wù)器。
- Ceph Monitor (ceph-mon) - 監(jiān)控集群狀態(tài)并運(yùn)行 OSD 映射 和 CRUSH 映射。這里我們使用一個(gè)服務(wù)器。
- Ceph Meta Data Server (ceph-mds) - 如果你想把 Ceph 作為文件系統(tǒng)使用,就需要這個(gè)。
前提條件
- 6 個(gè)安裝了 Ubuntu 16.04 的服務(wù)器節(jié)點(diǎn)
- 所有節(jié)點(diǎn)上的 root 權(quán)限
我將使用下面這些 hostname /IP 安裝:
主機(jī)名 IP 地址
ceph-admin 10.0.15.10
mon1 10.0.15.11
osd1 10.0.15.21
osd2 10.0.15.22
osd3 10.0.15.23
client 10.0.15.15
第 1 步 - 配置所有節(jié)點(diǎn)
這次安裝,我將配置所有的 6 個(gè)節(jié)點(diǎn)來準(zhǔn)備安裝 Ceph 集群軟件。所以你必須在所有節(jié)點(diǎn)運(yùn)行下面的命令。然后確保所有節(jié)點(diǎn)都安裝了 ssh-server。
創(chuàng)建 Ceph 用戶
在所有節(jié)點(diǎn)創(chuàng)建一個(gè)名為 cephuser 的新用戶
useradd -m -s /bin/bash cephuser
passwd cephuser
創(chuàng)建完新用戶后,我們需要給 cephuser 配置無密碼的 sudo 權(quán)限。這意味著 cephuser 可以不先輸入密碼而獲取到 sudo 權(quán)限運(yùn)行。
運(yùn)行下面的命令來完成配置。
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
安裝和配置 NTP
安裝 NTP 來同步所有節(jié)點(diǎn)的日期和時(shí)間。先運(yùn)行 ntpdate 命令通過 NTP 設(shè)置日期。我們將使用 US 池的 NTP 服務(wù)器。然后開啟并使 NTP 服務(wù)在開機(jī)時(shí)啟動(dòng)。
sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntp
systemctl start ntp
安裝 Open-vm-tools
如果你正在 VMware 里運(yùn)行所有節(jié)點(diǎn),你需要安裝這個(gè)虛擬化工具。
sudo apt-get install -y open-vm-tools
安裝 Python 和 parted
在這個(gè)教程,我們需要 python 包來建立 ceph 集群。安裝 python 和 python-pip。
sudo apt-get install -y python python-pip parted
配置 Hosts 文件
用 vim 編輯器編輯所有節(jié)點(diǎn)的 hosts 文件。
vim /etc/hosts
粘帖如下配置:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 ceph-osd1
10.0.15.22 ceph-osd2
10.0.15.23 ceph-osd3
10.0.15.15 ceph-client
保存 hosts 文件,然后退出 vim 編輯器。
現(xiàn)在你可以試著在兩個(gè)服務(wù)器間 ping 主機(jī)名來測試網(wǎng)絡(luò)連通性。
ping -c 5 mon1
第 2 步 - 配置 SSH 服務(wù)器
這一步,我們將配置 ceph-admin 節(jié)點(diǎn)。管理節(jié)點(diǎn)是用來配置監(jiān)控節(jié)點(diǎn)和 osd 節(jié)點(diǎn)的。登錄到 ceph-admin 節(jié)點(diǎn)然后使用 cephuser 用戶。
ssh root@ceph-admin
su - cephuser
管理節(jié)點(diǎn)用來安裝配置所有集群節(jié)點(diǎn),所以 ceph-admin 上的用戶必須有不使用密碼連接到所有節(jié)點(diǎn)的權(quán)限。我們需要為 'ceph-admin' 節(jié)點(diǎn)的 cephuser 用戶配置無密碼 SSH 登錄權(quán)限。
生成 cephuser 的 ssh 密鑰。
ssh-keygen
讓密碼為空。
下面,為 ssh 創(chuàng)建一個(gè)配置文件
vim ~/.ssh/config
粘帖如下配置:
Host ceph-admin
Hostname ceph-admin
User cephuser
Host mon1
Hostname mon1
User cephuser
Host ceph-osd1
Hostname ceph-osd1
User cephuser
Host ceph-osd2
Hostname ceph-osd2
User cephuser
Host ceph-osd3
Hostname ceph-osd3
User cephuser
Host ceph-client
Hostname ceph-client
User cephuser
保存文件并退出 vim。
改變配置文件權(quán)限為 644。
chmod 644 ~/.ssh/config
現(xiàn)在使用 ssh-copy-id 命令增加密鑰到所有節(jié)點(diǎn)。
ssh-keyscan ceph-osd1 ceph-osd2 ceph-osd3 ceph-client mon1 >> ~/.ssh/known_hosts
ssh-copy-id ceph-osd1
ssh-copy-id ceph-osd2
ssh-copy-id ceph-osd3
ssh-copy-id mon1
當(dāng)請求輸入密碼時(shí)輸入你的 cephuser 密碼。
現(xiàn)在嘗試從 ceph-admin 節(jié)點(diǎn)登錄 osd1 服務(wù)器,測試無密登錄是否正常。
ssh ceph-osd1
第 3 步 - 配置 Ubuntu 防火墻
出于安全原因,我們需要在服務(wù)器打開防火墻。我們更愿使用 Ufw(不復(fù)雜防火墻)來保護(hù)系統(tǒng),這是 Ubuntu 默認(rèn)的防火墻。在這一步,我們在所有節(jié)點(diǎn)開啟 ufw,然后打開 ceph-admin、ceph-mon 和 ceph-osd 需要使用的端口。
登錄到 ceph-admin 節(jié)點(diǎn),然后安裝 ufw 包。
ssh root@ceph-admin
sudo apt-get install -y ufw
打開 80,2003 和 4505-4506 端口,然后重啟防火墻。
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505:4506/tcp
開啟 ufw 并設(shè)置開機(jī)啟動(dòng)。
sudo ufw enable
從 ceph-admin 節(jié)點(diǎn),登錄到監(jiān)控節(jié)點(diǎn) mon1 然后安裝 ufw。
ssh mon1
sudo apt-get install -y ufw
打開 ceph 監(jiān)控節(jié)點(diǎn)的端口然后開啟 ufw。
sudo ufw allow 22/tcp
sudo ufw allow 6789/tcp
sudo ufw enable
最后,在每個(gè) osd 節(jié)點(diǎn) ceph-osd1、ceph-osd2 和 ceph-osd3 上打開這些端口 6800-7300。
從 ceph-admin 登錄到每個(gè) ceph-osd 節(jié)點(diǎn)安裝 ufw。
ssh ceph-osd1
sudo apt-get install -y ufw
在 osd 節(jié)點(diǎn)打開端口并重啟防火墻。
sudo ufw allow 22/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw enable
ufw 防火墻配置完成。
第 4 步 - 配置 Ceph OSD 節(jié)點(diǎn)
這個(gè)教程里,我們有 3 個(gè) OSD 節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有兩塊硬盤分區(qū)。
- /dev/sda 用于根分區(qū)
- /dev/sdb 空閑分區(qū) - 20GB
我們要使用 /dev/sdb 作為 ceph 磁盤。從 ceph-admin 節(jié)點(diǎn),登錄到所有 OSD 節(jié)點(diǎn),然后格式化 /dev/sdb 分區(qū)為 XFS 文件系統(tǒng)。
ssh ceph-osd1
ssh ceph-osd2
ssh ceph-osd3
使用 fdisk 命令檢查分區(qū)表。
sudo fdisk -l /dev/sdb
格式化 /dev/sdb 分區(qū)為 XFS 文件系統(tǒng),使用 parted 命令創(chuàng)建一個(gè) GPT 分區(qū)表。
sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
下面,使用 mkfs 命令格式化分區(qū)為 XFS 格式。
sudo mkfs.xfs -f /dev/sdb
現(xiàn)在檢查分區(qū),然后你會(huì)看見一個(gè) XFS 文件系統(tǒng)的 /dev/sdb 分區(qū)。
sudo fdisk -s /dev/sdb
sudo blkid -o value -s TYPE /dev/sdb
第 5 步 - 創(chuàng)建 Ceph 集群
在這步,我們將從 ceph-admin 安裝 Ceph 到所有節(jié)點(diǎn)。馬上開始,先登錄到 ceph-admin 節(jié)點(diǎn)。
ssh root@ceph-admin
su - cephuser
在 ceph-admin 節(jié)點(diǎn)上安裝 ceph-deploy
首先我們已經(jīng)在系統(tǒng)上安裝了 python 和 python-pip?,F(xiàn)在我們需要從 pypi python 倉庫安裝 Ceph 部署工具 'ceph-deploy'。
用 pip 命令在 ceph-admin 節(jié)點(diǎn)安裝 ceph-deploy 。
sudo pip install ceph-deploy
注意: 確保所有節(jié)點(diǎn)都已經(jīng)更新。
ceph-deploy 工具已經(jīng)安裝完畢后,為 Ceph 集群配置創(chuàng)建一個(gè)新目錄。
創(chuàng)建一個(gè)新集群
創(chuàng)建一個(gè)新集群目錄。
mkdir cluster
cd cluster/
下一步,用 ceph-deploy 命令通過定義監(jiān)控節(jié)點(diǎn) mon1 創(chuàng)建一個(gè)新集群。
ceph-deploy new mon1
命令將在集群目錄生成 Ceph 集群配置文件 ceph.conf。
用 vim 編輯 ceph.conf。
vim ceph.conf
在 [global] 塊下,粘貼下面的配置。
# Your network address
public network = 10.0.15.0/24
osd pool default size = 2
保存文件并退出編輯器。
安裝 Ceph 到所有節(jié)點(diǎn)
現(xiàn)在用一個(gè)命令從 ceph-admin 節(jié)點(diǎn)安裝 Ceph 到所有節(jié)點(diǎn)。
ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1
命令將自動(dòng)安裝 Ceph 到所有節(jié)點(diǎn):mon1、osd1-3 和 ceph-admin - 安裝將花一些時(shí)間。
現(xiàn)在到 mon1 節(jié)點(diǎn)部署監(jiān)控節(jié)點(diǎn)。
ceph-deploy mon create-initial
命令將創(chuàng)建一個(gè)監(jiān)控密鑰,用 ceph 命令檢查密鑰。
ceph-deploy gatherkeys mon1
增加 OSD 到集群
在所有節(jié)點(diǎn)上安裝了 Ceph 之后,現(xiàn)在我們可以增加 OSD 守護(hù)進(jìn)程到該集群。OSD 守護(hù)進(jìn)程將在磁盤 /dev/sdb 分區(qū)上創(chuàng)建數(shù)據(jù)和日志 。
檢查所有 osd 節(jié)點(diǎn)的 /dev/sdb 磁盤可用性。
ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3
你將看見我們之前創(chuàng)建 XFS 格式的 /dev/sdb。
下面,在所有 OSD 節(jié)點(diǎn)上用 zap 選項(xiàng)刪除該分區(qū)表。
ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
這個(gè)命令將刪除所有 Ceph OSD 節(jié)點(diǎn)的 /dev/sdb 上的數(shù)據(jù)。
現(xiàn)在準(zhǔn)備所有 OSD 節(jié)點(diǎn),請確保結(jié)果沒有報(bào)錯(cuò)。
ceph-deploy osd prepare ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
當(dāng)你看到 ceph-osd1-3 結(jié)果已經(jīng)準(zhǔn)備好供 OSD 使用,就表明命令已經(jīng)成功。
用下面的命令激活 OSD:
ceph-deploy osd activate ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
現(xiàn)在你可以再一次檢查 OSDS 節(jié)點(diǎn)的 sdb 磁盤。
ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3
結(jié)果是 /dev/sdb 現(xiàn)在已經(jīng)分為兩個(gè)區(qū):
- /dev/sdb1 - Ceph Data
- /dev/sdb2 - Ceph Journal
或者你直接在 OSD 節(jié)點(diǎn)山檢查。
ssh ceph-osd1
sudo fdisk -l /dev/sdb
接下來,部署管理密鑰到所有關(guān)聯(lián)節(jié)點(diǎn)。
ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-osd3
在所有節(jié)點(diǎn)運(yùn)行下面的命令,改變密鑰文件權(quán)限。
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Ceph 集群在 Ubuntu 16.04 已經(jīng)創(chuàng)建完成。
第 6 步 - 測試 Ceph
在第 4 步,我們已經(jīng)安裝并創(chuàng)建了一個(gè)新 Ceph 集群,然后添加了 OSD 節(jié)點(diǎn)到集群?,F(xiàn)在我們應(yīng)該測試集群確保它如期工作。
從 ceph-admin 節(jié)點(diǎn),登錄到 Ceph 監(jiān)控服務(wù)器 mon1。
ssh mon1
運(yùn)行下面命令來檢查集群是否健康。
sudo ceph health
現(xiàn)在檢查集群狀態(tài)。
sudo ceph -s
你可以看到下面返回結(jié)果:
確保 Ceph 健康狀態(tài)是 OK 的,有一個(gè)監(jiān)控節(jié)點(diǎn) mon1 IP 地址為 '10.0.15.11'。有 3 個(gè) OSD 服務(wù)器都是 up 狀態(tài)并且正在運(yùn)行,可用磁盤空間為 45GB - 3x15GB 的 Ceph 數(shù)據(jù) OSD 分區(qū)。
我們在 Ubuntu 16.04 建立一個(gè)新 Ceph 集群成功。
參考
- http://docs.ceph.com/docs/jewel/
網(wǎng)頁標(biāo)題:如何在Ubuntu16.04中安裝Ceph存儲集群
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/cdjppds.html


咨詢
建站咨詢
