ubuntu18.04
ceph version 12.2.7 luminous (stable)node
三節點
配置以下
node1:1U,1G mem,20G disk,兩塊空硬盤(sdb,sdc)
node2:1U,1G mem,20G disk,兩塊空硬盤(sdb,sdc)
node3:1U,1G mem,20G disk,兩塊空硬盤(sdb,sdc)linux
role | hostname | ip |
---|---|---|
dep(部署節點) | node1 | 192.168.113.5 |
mon(監控節點) | node1,node2,node3 | 192.168.113.5,192.168.113.3,192.168.113.4 |
ods(存儲節點) | node1,node2,node3 | 192.168.113.5,192.168.113.3,192.168.113.4 |
systemctl stop NetworkManager 臨時關閉 systemctl disable NetworkManager 永久關閉網絡管理命令
systemctl stop firewalld.service systemctl disable firewalld.service firewall-cmd --state
注意
ntp同步時間失敗,多是上層路由封鎖udp123端口,
咱們只能經過tcp來同步時間,具體操做以下
查看時間服務器的時間:bootstrap
rdate time-b.nist.gov
設置時間和時間服務器同步:
rdate -s time-b.nist.gov
ubuntu
下面有其餘的ntp服務器地址bash
time.nist.gov time-b.nist.gov 216.118.116.105 rdate.darkorb.net 202.106.196.19 time-b.timefreq.bldrdoc.gov ntp1.aliyun.com
hostnamectl set-hostname node1 hostnamectl set-hostname node2 hostnamectl set-hostname node3
修改/etc/hosts文件服務器
192.168.113.3 node1 192.168.113.4 node2 192.168.113.5 node3
ssh-keygen 一路回車 ssh-copy-id node{1,2,3}
驗證一下
ssh node2
網絡
apt update -y && reboot
ssh
驗證全部節點可以ping通外網tcp
apt update -y分佈式
apt install ceph-deploy -y
若是在某些地方碰到麻煩,想從頭再來,能夠用下列命令清除配置:
ceph-deploy purgedata node1 node2 node3 ceph-deploy forgetkeys
用下列命令能夠連 Ceph 安裝包一塊兒清除:
ceph-deploy purge node1 node2 node3
若是執行了 purge
,你必須從新安裝 Ceph 。
在管理節點上,進入剛建立的放置配置文件的目錄,用 ceph-deploy
執行以下步驟。
建立集羣。
ceph-deploy new node1 node2 node3
在當前目錄下用 ls
和 cat
檢查 ceph-deploy
的輸出,應該有一個 Ceph 配置文件、一個 monitor 密鑰環和一個日誌文件。詳情見 ceph-deploy new -h 。
把 Ceph 配置文件裏的默認副本數從 3
改爲 1
,這樣只有兩個 OSD 也能夠達到 active + clean
狀態。把下面這行加入 [global]
段:
osd pool default size = 1
若是你有多個網卡,能夠把 public network
寫入 Ceph 配置文件的 [global]
段下。詳情見網絡配置參考。
public network = {ip-address}/{netmask}
安裝 Ceph 。
ceph-deploy install node1 node2 node3
ceph-deploy
將在各節點安裝 Ceph 。 注:若是你執行過 ceph-deploy purge
,你必須從新執行這一步來安裝 Ceph 。
配置初始 monitor(s)、並收集全部密鑰:
ceph-deploy mon create-initial
完成上述操做後,當前目錄裏應該會出現這些密鑰環:
{cluster-name}.client.admin.keyring
{cluster-name}.bootstrap-osd.keyring
{cluster-name}.bootstrap-mds.keyring
{cluster-name}.bootstrap-rgw.keyring
新增和拆除 Ceph 的 OSD 進程相比其它兩種要多幾步。 OSD 守護進程把數據寫入磁盤和日誌,因此你得相應地提供一 OSD 數據盤和日誌分區路徑(這是最多見的配置,但你能夠按需調整)。
從 Ceph v0.60 起, Ceph 支持 dm-crypt
加密的硬盤,在準備 OSD 時你能夠用 --dm-crypt
參數告訴 ceph-deploy
你想用加密功能。也能夠用 --dmcrypt-key-dir
參數指定 dm-crypt
加密密鑰的位置。
在投建一個大型集羣前,你應該測試各類驅動器配置來衡量其吞吐量。詳情見數據存儲。
列舉磁盤
執行下列命令列舉一節點上的磁盤:
ceph-deploy disk list {node-name [node-name]...}
用下列命令擦淨(刪除分區表)磁盤,以用於 Ceph :
ceph-deploy disk zap {osd-server-name}:{disk-name} ceph-deploy disk zap osdserver1:sdb
這會刪除全部數據。
建立集羣、安裝 Ceph 軟件包、收集密鑰完成後你就能夠準備 OSD 並把它們部署到 OSD 節點了。若是你想確認某磁盤或擦淨它,參見列舉磁盤和擦淨磁盤。
ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}] ceph-deploy osd prepare osdserver1:sdb:/dev/ssd ceph-deploy osd prepare osdserver1:sdc:/dev/ssd
prepare
命令只准備 OSD 。在大多數操做系統中,硬盤分區建立後,不用 activate
命令也會自動執行 activate
階段(經過 Ceph 的 udev
規則)。詳情見激活 OSD。
前例假定一個硬盤只會用於一個 OSD 守護進程,以及一個到 SSD 日誌分區的路徑。咱們建議把日誌存儲於另外的驅動器以最優化性能;你也能夠指定一單獨的驅動器用於日誌(也許比較昂貴)、或者把日誌放到 OSD 數據盤(不建議,由於它有損性能)。前例中咱們把日誌存儲於分好區的固態硬盤。
Note
在一個節點運行多個 OSD 守護進程、且多個 OSD 守護進程共享一個日誌分區時,你應該考慮整個節點的最小 CRUSH 故障域,由於若是這個 SSD 壞了,全部用其作日誌的 OSD 守護進程也會失效。
準備好 OSD 後,能夠用下列命令激活它。
ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}] ceph-deploy osd activate osdserver1:/dev/sdb1:/dev/ssd1 ceph-deploy osd activate osdserver1:/dev/sdc1:/dev/ssd2
activate
命令會讓 OSD 進入 up
且 in
狀態,此命令所用路徑和 prepare
相同。
你能夠用 create
命令一次完成準備 OSD 、部署到 OSD 節點、並激活它。 create
命令是依次執行 prepare
和 activate
命令的捷徑。
ceph-deploy osd create {node-name}:{disk}[:{path/to/journal}] ceph-deploy osd create osdserver1:sdb:/dev/ssd1
用 ceph-deploy
把配置文件和 admin 密鑰拷貝到管理節點和 Ceph 節點,這樣你每次執行 Ceph 命令行時就無需指定 monitor 地址和 ceph.client.admin.keyring
了。
ceph-deploy admin {admin-node} {ceph-node}
例如:
ceph-deploy admin admin-node node1 node2 node3
ceph-deploy
和本地管理主機( admin-node
)通訊時,必須經過主機名可達。必要時可修改 /etc/hosts
,加入管理主機的名字。
確保你對 ceph.client.admin.keyring
有正確的操做權限。
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
檢查集羣的健康情況。
ceph health
ceph-deploy mgr create node1 ceph-deploy mgr create node2 ceph-deploy mgr create node3
ceph mgr module enable dashboard
http://ip:7000 訪問dashboard
ceph config-key put mgr/dashboard/server_addr 192.168.246.132 ceph config-key put mgr/dashboard/server_port 7000 systemctl restart ceph-mgr@node1
ceph osd pool create volumes ceph osd pool create images ceph osd pool create vms
rbd pool init volumes rbd pool init images rbd pool init vms
ceph health ceph -s ceph osd tree ceph df ceph mon stat ceph osd stat ceph pg stat ceph osd lspools ceph auth list