Upgrade to Pro — share decks privately, control downloads, hide ads and more …

無限ストレージ

 無限ストレージ

以下イベントの発表資料です
https://kernelvm.connpass.com/event/209105/

Satoru Takeuchi

July 10, 2021
Tweet

More Decks by Satoru Takeuchi

Other Decks in Technology

Transcript

  1. Cephのアーキテクチャ 6 ストレージプール RBD CephFS RGW node node node node

    disk OSD disk OSD disk OSD disk OSD データはOSD間に均等に分散配置される データはOSD間に均等に分散配置される データはOSD間に均等に分散配置される データは全OSDに均等に分散配置される
  2. 環境 • Ubuntu: 18.04.4 • Linuxカーネル: 4.15.0-99 • Ceph: v15.2.12

    • Rook(Cephのオーケストレータ): v1.6.7 12
  3. 初期状態 13 ストレージプール disk OSD 1node, 1OSD on disk(10GiB)のシンプルな構造 #

    ceph -s ... osd: 1 osds: 1 up (since 9m) …usage: 1.0 GiB used, 9.0 GiB / 10 GiB avail
  4. 容量も倍になった! 17 ストレージプール disk OSD RBD OSD # ceph -s

    ... osd: 2 osds: 2 up ... usage: 2.0 GiB used, 18 GiB / 20 GiB avail
  5. 成功! 19 ストレージプール disk OSD RBD OSD # ceph -s

    ... osd: 1 osds: 1 up ... usage: 1.0 GiB used, 9.0 GiB / 10 GiB avail
  6. 原因 21 ストレージプール disk OSD RBD OSD 1. OSD on

    RBDのメタデータはOSD on diskに保存されている 2. OSD on diskを削除するとそこにあったデータはロスト 3. OSD on RBDが機能しなくなりDOWN 新OSDのメタデータ
  7. 対策: データを冗長化させて徐々に移動させる 22 1. 最初にOSD on diskを二つ作る 2. OSD on

    RBDを2つ作る 3. OSD on diskを1つ削除。このOSDにあったデータは他の OSDに移動 4. OSD on diskをもう1つ削除。その後は同上
  8. 初期状態その2 23 ストレージプール disk OSD • 1node, 2OSD on disk(それぞれ10GiB)

    # ceph -s ... osd: 2 osds: 2 up … usage: 2.0 GiB used,18.0 GiB / 20 GiB avail disk OSD
  9. 問題発生: データのリバランスが終わらない 25 ストレージプール disk OSD RBD OSD RBD OSD

    disk OSD • 期待値: OSD on disk上のデータの半分が OSD on RBDに移動 • 実際: 全然進まない
  10. 原因: 循環I/O 26 ストレージプール disk OSD RBD OSD RBD OSD

    disk OSD 1. OSD on disk上のデータをOSD on RBDに移動 2. 移動時のwriteは同期write 3. OSD on RBDへの同期write->OSD on diskへの同期write->OSD on RBDへの(ry
  11. やっぱり循環I/O発生! 29 ストレージプール disk OSD RBD OSD RBD OSD disk

    OSD • 原因不明 • カーネルのrbdドライバの変更が必要 ? • ここで時間切れ