Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Cephの話 おのかちお
Slide 2
Slide 2 text
ぼく ● おのかちお ● 今日のSELinux問題を作った人です ○ 前半ドタバタしてごめん… :pray: ● インフラチームでストレージ周りやってました
Slide 3
Slide 3 text
注意 このCephは、監視基盤のCeph(Rook)とは別のクラスタです
Slide 4
Slide 4 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 5
Slide 5 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 6
Slide 6 text
以前のストレージ構成
Slide 7
Slide 7 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 8
Slide 8 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 9
Slide 9 text
Cephとは ● 分散ストレージ ● レプリカの話 ● SPOFが居ない ● OSDの自動認識 ● リバランス ● S3/NFS/CephFS/RBDのインターフェイス
Slide 10
Slide 10 text
Cephとは - 分散ストレージ ● データが分散される ○ (機材があれば)いくらでもスケールできる ● データが複製される ○ どこかで壊れるor無くなってもデータが消えくい ● 単一障害点をなくしやすい ○ コントロールプレーンもデータプレーンも
Slide 11
Slide 11 text
Cephとは - レプリカの話 ● レプリカ = 重複度 ● レプリカサイズ3ならデータが3重に保存される ○ ただし使用ストレージ容量も3倍 ○ 書き込み実質速度は3倍 ○ (今回はWritebackなので実質1倍)
Slide 12
Slide 12 text
Cephとは - SPOFが居ない ● Cephは、Single Point Of Failure(単一障害点)ができにくい仕組 みになっています。 ○ データプレーン: レプリカ ○ コントロールプレーン: CRUSHアルゴリズム
Slide 13
Slide 13 text
Cephとは - 物理ディスクの自動認識 ● Cephを構成するサーバーに新しいディスクが挿入される ↓ ● 全自動で初期化・Cephへ追加
Slide 14
Slide 14 text
Cephとは - リバランス ● データが増える or 物理ディスクが増える ↓ ● 再配置・細分化
Slide 15
Slide 15 text
Cephとは - インターフェイス ● NFS ● S3 ● CephFS ● RBD (Rados Block Device)
Slide 16
Slide 16 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 17
Slide 17 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 18
Slide 18 text
今回のCephの構成と容量の話 ● コントロールプレーン: 6ノード ● データプレーン: 6ノード ○ SSD x6 ○ HDD x3 × 4 × 2 × 2
Slide 19
Slide 19 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 20
Slide 20 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 21
Slide 21 text
ブロックストレージをCephに置く話 ● Cephの速度計測会 ● humstackがブロックストレージをCephRBDに置く ● ところで トラコンのVMの数について
Slide 22
Slide 22 text
Cephの速度計測会
Slide 23
Slide 23 text
Cephの速度計測会
Slide 24
Slide 24 text
Cephの速度計測会
Slide 25
Slide 25 text
Cephの速度計測会
Slide 26
Slide 26 text
Cephの速度計測会 (BS展開時)
Slide 27
Slide 27 text
Cephの速度計測会 (VM起動時)
Slide 28
Slide 28 text
Cephの速度計測会 (Ceph pool)
Slide 29
Slide 29 text
humstackがBSをCeph RBDに置く ● humstack(仮想化基盤) がCephにブロックストレージを置ける ように改良 by t-inagaki ↓ ● 結果的に一つのVM作成・起動が数分程度に! ○ コンピュートノード間のコピーが要らなくなった ○ ただしレプリカ=1なので、分散されているだけで耐障害性 の旨みはない
Slide 30
Slide 30 text
ところで トラコンのVMの数について ● 総VM数: 20~30台程度 ● チーム数: 22 ● 1VM 5GBぐらい 20 〜 30 * 22 *5 = 2 〜 3TB → レプリカサイズを3にすると、9TB超になる → SSD 6TBを超えてしまう
Slide 31
Slide 31 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 32
Slide 32 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 33
Slide 33 text
Cephのsnapshotの話 ● Ceph RBDには、既存のオブジェクトをベースに別のオブジェ クトを展開する機能がある ● レイヤーとして、ベースと差分を分けられる ● VMの差分のみ保存され、各ストレージの共通部分は一つのブ ロックストレージに! ● 展開は爆速・実際に書き込むまで使用容量ゼロ ● イメージとしてはDockerのoverlayfs
Slide 34
Slide 34 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 35
Slide 35 text
話すこと ● 以前のストレージ構成 ● Cephとは ● 今回のCephの構成と容量の話 ● ブロックストレージをCephに置く話 ● Cephのsnapshotの話 ● 起こったトラブルの話
Slide 36
Slide 36 text
起こったトラブルの話 ● ioDriveが認識されない ● 時刻の精度を高めないといけない話 ● OSDがメモリを食ってwireguardサーバーが落ちた話 ● Dockerとpodmanが何故か混在した話 ● 本番の日の朝にPGの数がオートスケールされることがわかった ので先にPGの数を増やした話
Slide 37
Slide 37 text
起こったトラブルの話 ● ioDriveが認識されない ● SSDのドライバがカスタムモジュール ○ LV metadより先に読み込まれると、CephがLVMを認識 できない ○ LV metadを無効化し、イベント的にdevice mapperを 認識するようにした
Slide 38
Slide 38 text
起こったトラブルの話 ● 時刻の精度を高めないといけない話 ● Cephは時刻の精度が0.05s以下でないとWARNを出す ○ 最初はNTPdを立てて運用 ■ spofになるので止めたい ○ NICTのNTPを使ったら精度があがった ■ ありがとうNICT!
Slide 39
Slide 39 text
起こったトラブルの話 ● Dockerとpodmanが何故か混在した話 ○ おそらくインストールミスでDockerとpodmanがノード で混在 ○ podman消す && Dockerインストール ○ → OSDとmonが自動で再展開されない ○ →手動でreapplyして解決
Slide 40
Slide 40 text
起こったトラブルの話 ● 本番の日の朝にPGの数がオートスケールされることがわかった ので先にPGの数を増やした話 ○ Cephのper OSD PGが2^nを超えるとPGサイズを細分化し てリバランス ○ →本番中に起こったらSlow OPsになりそう ○ →今朝気づいた運営委員が事前に細分化
Slide 41
Slide 41 text
起こったトラブルの話 ● ioDriveが認識されない ● 時刻の精度を高めないといけない話 ● OSDがメモリを食ってwireguardサーバーが落ちた話 ● Dockerとpodmanが何故か混在した話 ● 本番の日の朝にPGの数がオートスケールされることがわかった ので先にPGの数を増やした話
Slide 42
Slide 42 text
ご静聴ありがとうございました 質問などあればZoomで話しかけてください! もしくはTwitter (@onokatio_) まで