科技新知

筆者不才,早前為大家介紹了一篇關於Ceph Storage的最入門安裝教學。但在後續測試中,發現了一些概念上的問題,需要盡早說明,不然就會像筆者一樣,要砍掉重來很多次。

OSD HDD

Ceph Storage的主要功能,就是為Contiainer提供外置儲存空間,它對儲存空間有特定的要求。我們最好在建立ceph cluster(cephadm bootstrap)之前,就為每個node上增加合適的HDD

引述官方說明: OSD (Object Storage Daemons)

  • The device must have no partitions.
  • The device must not have any LVM state.
  • The device must not be mounted.
  • The device must not contain a file system.
  • The device must not contain a Ceph BlueStore OSD.
  • The device must be larger than 5 GB.

簡而言之,大家需要準備新的HDD,不要做任何格式化,讓OS見到HDD但不作任何操作。筆者試過,使用hyper-v VM + hyper-v HDD,也是可以做到的。不過之前筆者於教學中用的 multipass 就沒有這個模擬HDD功能,我們需要使用比較強大的VM作為實驗。

若然HDD是在ceph cluster(cephadm bootstrap)建立之前,就存在的。我們可以經過ceph的網頁介面,或經指令自動加入。

ceph orch apply osd --all-available-devices

若然HDD是在ceph cluster(cephadm bootstrap)建立之後,才加入的。那麼ceph有機會沒法自動發現它,筆者當前的dev版本就出現這問題。我們就需要經指令手動增加

ceph orch daemon add osd NODENAME:/dev/sdb

OSD 官方說明文件 https://docs.ceph.com/en/reef/cephadm/services/osd/#cephadm-deploy-osds

Reset

在我們做實驗時,若我們想回復到上一個狀態,測試不同的參數差異,Ceph指令並不會即時執行。例如前一句的add osd,想倒回來自行刪掉一些osd,即

ceph orch osd rm OSDID

它就會排隊慢慢做刪除。

但這個過程筆者未有成功過,OSD一直處於繁忙狀態。有機會是因為系統需要保持同步狀態,待成功遷移資料前,什麼都不能動,所以一直都在待刪除的狀態中。

同樣地,當我們想要刪除一些node時,我們使用以下指令

ceph orch host drain NODENAME
ceph orch host rm NODENAME

最後也是會卡在刪除OSD的情況

Removing Hosts 官方說明文件 https://docs.ceph.com/en/reef/cephadm/host-management/

Static IP

因為 container 技術,很多都需要固定 IP ,我們做實驗之前,最好先了解你的VM engine如果提供Static ip 。以 hyper-v 建立的 VM ,其實可以同時建立兩張網卡的,一張為預設網卡,用於連網用,另一張則設定為內部網絡。在安裝 ceph 時,經 cephadm bootstrap 所引用的IP則設定為內部網絡的IP。之後基本上使用任何一張網卡的 ip ,也可以訪問到cephadm的網頁介面。如果不是在一開始的階段上準備Static IP ,我們又會在重設/解綁cluster時,同樣因為機器繁忙而卡在不上不下的狀況。

馬交野