Ceph Jewel 版本osd添加和刪除

增加/刪除 OSD

如果您的集群已經(jīng)在運行九默,你可以在運行時添加或刪除 OSD 。

增加 OSD

你遲早要擴容集群宾毒, Ceph 允許在運行時增加 OSD 驼修。在 Ceph 里,一個 OSD 一般是一個守護進程诈铛,它運行在硬盤之上乙各,如果你有多個硬盤,可以給每個硬盤啟動一個ceph-osd守護進程幢竹。

通常耳峦,你應該監(jiān)控集群容量,看是否達到了容量上限焕毫,因為達到了它的 near full 比率后妇萄,要增加一個或多個 OSD 來擴容。

Warning

不要等空間滿了再增加 OSD 咬荷,空間使用率達到 near full 比率后冠句, OSD 失敗可能導致集群空間占滿。

部署硬件

如果你通過增加主機來增加 OSD 幸乒,關于 OSD 服務器硬件的配置請參見硬件推薦懦底。要把一臺 OSD 主機加入到集群,首先要安裝最新版的 Linux 罕扎,而且存儲硬盤要做好必要的準備聚唐,詳情參見文件系統(tǒng)推薦

把 OSD 主機添加到集群機架上腔召,連接好網(wǎng)絡杆查、確保網(wǎng)絡通暢。詳情見網(wǎng)絡配置參考臀蛛。

安裝必要軟件

在手動部署的集群里亲桦,你必須手動安裝 Ceph 軟件包,詳情見安裝 Ceph(手動)浊仆。你應該配置一個無密碼登錄 SSH 的用戶客峭,且他有 root 權限。

增加 OSD (手動)

此過程要設置一個 ceph-osd 守護進程抡柿,讓它使用一個硬盤舔琅,且讓集群把數(shù)據(jù)發(fā)布到 OSD 。如果一臺主機有多個硬盤洲劣,可以重復此過程备蚓,把每個硬盤配置為一個 OSD 课蔬。要添加 OSD ,要依次創(chuàng)建數(shù)據(jù)目錄郊尝、把硬盤掛載到目錄购笆、把 OSD 加入集群、然后把它加入 CRUSH map中虚循。

往 CRUSH map里添加 OSD 時建議設置權重同欠,硬盤容量每年增長 40% ,所以較新的 OSD 主機擁有更大的空間(即它們可以有更大的權重)横缔。

Tip

Ceph 喜歡統(tǒng)一的硬件铺遂,與存儲池無關。如果你要新增容量不一的驅(qū)動器茎刚,還需調(diào)整它們的權重襟锐。但是,為實現(xiàn)最佳性能膛锭,CRUSH 的分級結(jié)構最好按類型粮坞、容量定義。

  1. 創(chuàng)建 OSD 初狰。如果未指定 UUID 莫杈, OSD 啟動時會自動生成一個。下列命令會輸出 OSD 號奢入,后續(xù)步驟你會用到筝闹。

    ceph osd create [{uuid} [{id}]]
    

如果指定了可選參數(shù) {id} ,那么它將作為 OSD id 腥光。要注意关顷,如果此數(shù)字已使用,此命令會出錯武福。

Warning
一般來說议双,我們不建議指定 {id} 。因為 ID 是按照數(shù)組分配的捉片,跳過一些依然會浪費內(nèi)存平痰;尤其是跳過太多、或者集群很大時界睁,會更明顯觉增。若未指定 {id} ,將用最小可用數(shù)字翻斟。

  1. 在新 OSD 主機上創(chuàng)建默認目錄。

    ssh {new-osd-host}
    sudo mkdir /var/lib/ceph/osd/ceph-{osd-number}
    
  2. 如果準備用于 OSD 的是單獨的而非系統(tǒng)盤说铃,先把它掛載到剛創(chuàng)建的目錄下:

    ssh {new-osd-host}
    sudo mkfs -t {fstype} /dev/{drive}
    sudo mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/ceph-{osd-number}
    
  3. 初始化 OSD 數(shù)據(jù)目錄访惜。

    ssh {new-osd-host}
    ceph-osd -i {osd-num} --mkfs --mkkey
    

    運行ceph-osd時目錄必須是空的嘹履。

  4. 注冊 OSD 認證密鑰,ceph-{osd-num} 路徑里的 ceph 值應該是$cluster-$id 债热,如果你的集群名字不是 ceph砾嫉,那就用改過的名字。

    ceph auth add osd.{osd-num} osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-{osd-num}/keyring
    
  5. 把 OSD 加入 CRUSH 圖窒篱,這樣它才開始接收數(shù)據(jù)焕刮。用 ceph osd crush add 命令把 OSD 加入 CRUSH 分級結(jié)構的合適位置。如果你指定了不止一個桶墙杯,此命令會把它加入你所指定的桶中最具體的一個配并,并且把此桶挪到你指定的其它桶之內(nèi)。重要:如果你只指定了 root 桶高镐,此命令會把 OSD 直接掛到 root 下面溉旋,但是 CRUSH 規(guī)則期望它位于主機內(nèi)。

    若用的是 v0.48 版嫉髓,執(zhí)行下列命令:

    ceph osd crush add {id} {name} {weight}  [{bucket-type}={bucket-name} ...]
    

    若用的是 v0.56 及更高版观腊,執(zhí)行下列命令:

    ceph osd crush add {id-or-name} {weight}  [{bucket-type}={bucket-name} ...]
    

    你也可以反編譯 CRUSH 圖、把 OSD 加入設備列表算行、以桶的形式加入主機(如果它沒在 CRUSH 圖里)梧油、以條目形式把設備加入主機、分配權重州邢、重編譯并應用它婶溯。詳情參見增加/移動 OSD

Argonaut 0.48 版最佳實踐

為降低對用戶 I/O 性能的影響偷霉,加入 CRUSH 圖時應該把 OSD 的初始權重設為 0 迄委,然后每次增大一點、逐步增大 CRUSH 權重类少。例如每次增加 0.2

ceph osd crush reweight {osd-id} .2

遷移完成前叙身,可以依次把權重重置為 0.6 等等,直到達到期望權重硫狞。

為降低 OSD 失敗的影響信轿,你可以設置:

mon osd down out interval = 0

它防止掛了的 OSD 自動被標記為 out ,然后逐步降低其權重:

ceph osd reweight {osd-num} .8

還是等著集群完成數(shù)據(jù)遷移残吩,然后再次調(diào)整權重财忽,直到權重為 0 。注意泣侮,這會阻止集群在發(fā)生故障時自動重復制數(shù)據(jù)即彪,所以要確保監(jiān)控的及時性,以便管理員迅速介入活尊。

注意隶校,以上經(jīng)驗在 Bobtail 及后續(xù)版本已不再必要漏益。

啟動 OSD

把 OSD 加入 Ceph 后, OSD 就在配置里了深胳。然而它還沒運行绰疤,它現(xiàn)在的狀態(tài)為 out 。你必須先啟動 OSD 它才能收數(shù)據(jù)舞终∏崆欤可以用管理主機上的service ceph 、或從 OSD 所在主機啟動敛劝。

在 Debian/Ubuntu 上用 Upstart余爆。

sudo start ceph-osd id={osd-num}

在 CentOS/RHEL 上用 sysvinit 。

sudo /etc/init.d/ceph start osd.{osd-num}

一旦你啟動了 OSD 攘蔽,其狀態(tài)就變成了 upin 龙屉。

觀察數(shù)據(jù)遷移

把新 OSD 加入 CRUSH 圖后, Ceph 會重新均衡服務器满俗,一些歸置組會遷移到新 OSD 里转捕,你可以用 ceph 命令觀察此過程。

ceph -w

你會看到歸置組狀態(tài)從 active+clean 變?yōu)?active, some degraded objects (有降級的對象)唆垃、且遷移完成后回到 active+clean 狀態(tài)五芝。( Ctrl-c 退出)

刪除 OSD (手動)

要想縮減集群尺寸或替換硬件,可在運行時刪除 OSD 辕万。在 Ceph 里枢步,一個 OSD 通常是一臺主機上的一個 ceph-osd守護進程、它運行在一個硬盤之上渐尿。如果一臺主機上有多個數(shù)據(jù)盤醉途,你得挨個刪除其對應ceph-osd。通常砖茸,操作前應該檢查集群容量隘擎,看是否快達到上限了,確保刪除 OSD 后不會使集群達到near full 比率凉夯。

Warning

刪除 OSD 時不要讓集群達到full ratio 值货葬,刪除 OSD 可能導致集群達到或超過 full ratio值。

把 OSD 踢出集群[]

刪除 OSD 前劲够,它通常是in 的震桶,要先把它踢出集群,以使 Ceph 啟動重新均衡征绎、把數(shù)據(jù)拷貝到其他 OSD 蹲姐。

ceph osd out {osd-num}

觀察數(shù)據(jù)遷移

一旦把 OSD 踢出集群, Ceph 就會開始重新均衡集群、把歸置組遷出將刪除的 OSD 淤堵。你可以用 ceph 工具觀察此過程寝衫。

ceph -w

你會看到歸置組狀態(tài)從active+clean 變?yōu)?active, some degraded objects 顷扩、遷移完成后最終回到 active+clean 狀態(tài)拐邪。( Ctrl-c 中止)

Note

有時候,(通常是只有幾臺主機的“小”集群,比如小型測試集群)拿出( out )某個 OSD 可能會使 CRUSH 進入臨界狀態(tài)隘截,這時某些 PG 一直卡在active+remapped狀態(tài)扎阶。如果遇到了這種情況,你應該把此 OSD 標記為in 婶芭,用這個命令:

ceph osd in {osd-num}

等回到最初的狀態(tài)后东臀,把它的權重設置為 0 ,而不是標記為out 犀农,用此命令:

ceph osd crush reweight osd.{osd-num} 0

執(zhí)行后惰赋,你可以觀察數(shù)據(jù)遷移過程,應該可以正常結(jié)束呵哨。把某一 OSD 標記為 out 和權重改為 0 的區(qū)別在于赁濒,前者,包含此 OSD 的桶孟害、其權重沒變拒炎;而后一種情況下,桶的權重變了(降低了此 OSD 的權重)挨务。某些情況下击你, reweight 命令更適合“小”集群。

停止 OSD

把 OSD 踢出集群后谎柄,它可能仍在運行丁侄,就是說其狀態(tài)為upout。刪除前要先停止 OSD 進程朝巫。

ssh {osd-host}
sudo /etc/init.d/ceph stop osd.{osd-num}

停止 OSD 后鸿摇,狀態(tài)變?yōu)?strong>down。

刪除 OSD

此步驟依次把一個 OSD 移出集群 CRUSH 圖捍歪、刪除認證密鑰户辱、刪除 OSD 圖條目、刪除ceph.conf 條目糙臼。如果主機有多個硬盤庐镐,每個硬盤對應的 OSD 都得重復此步驟。

  1. 刪除 CRUSH 圖的對應 OSD 條目变逃,它就不再接收數(shù)據(jù)了必逆。你也可以反編譯 CRUSH 圖、刪除 device 列表條目、刪除對應的 host 桶條目或刪除 host 桶(如果它在 CRUSH 圖里名眉,而且你想刪除主機)粟矿,重編譯 CRUSH 圖并應用它。詳情參見刪除 OSD 损拢。

    ceph osd crush remove {name}
    
  2. 刪除 OSD 認證密鑰:

    ceph auth del osd.{osd-num}</pre>
    

    ceph-{osd-num} 路徑里的 ceph值是$cluster-$id 陌粹,如果集群名字不是 ceph,這里要更改福压。

  3. 刪除 OSD 掏秩。

    ceph osd rm {osd-num}
    #for example
    ceph osd rm 1
    
  4. 登錄到保存ceph.conf 主拷貝的主機。

    ssh {admin-host}
    cd /etc/ceph
    vim ceph.conf</pre>
    
  5. 從ceph.conf配置文件里刪除對應條目荆姆。

     [osd.1]
         host = {hostname}
    
  6. 從保存ceph.conf主機作為拷貝的主機蒙幻,把更新過的ceph.conf拷貝到集群其他主機的/etc/ceph/目錄下。

備注:

此內(nèi)容來自于ceph社區(qū)胆筒。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邮破,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子仆救,更是在濱河造成了極大的恐慌抒和,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件派桩,死亡現(xiàn)場離奇詭異构诚,居然都是意外死亡,警方通過查閱死者的電腦和手機铆惑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門范嘱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人员魏,你說我怎么就攤上這事丑蛤。” “怎么了撕阎?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵受裹,是天一觀的道長。 經(jīng)常有香客問我虏束,道長棉饶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任镇匀,我火速辦了婚禮照藻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘汗侵。我一直安慰自己幸缕,他們只是感情好群发,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著发乔,像睡著了一般熟妓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栏尚,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天起愈,我揣著相機與錄音,去河邊找鬼抵栈。 笑死告材,一個胖子當著我的面吹牛坤次,可吹牛的內(nèi)容都是我干的古劲。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼缰猴,長吁一口氣:“原來是場噩夢啊……” “哼产艾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滑绒,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤闷堡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后疑故,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杠览,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年纵势,在試婚紗的時候發(fā)現(xiàn)自己被綠了踱阿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡钦铁,死狀恐怖软舌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牛曹,我是刑警寧澤佛点,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站黎比,受9級特大地震影響超营,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阅虫,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一演闭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧书妻,春花似錦船响、人聲如沸躬拢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽聊闯。三九已至,卻和暖如春米诉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背史侣。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工拴泌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚪腐。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓回季,卻偏偏與公主長得像泡一,于是被迫代替她去往敵國和親觅廓。 傳聞我的和親對象是個殘疾皇子杈绸,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容