1 / 15

ライブ・ストレージマイグレーション 機構の開発とその評価

ライブ・ストレージマイグレーション 機構の開発とその評価. 広渕崇宏 中田秀基 小川宏高  伊藤智 関口智嗣 t.hirofuchi _at_ aist.go.jp 産業技術総合研究所. xNBD とは. xNBD - http://bitbucket.org/hirofuchi/xnbd 開発中の高速・高機能版 NBD ターゲットサーバ オリジナル NBD サーバの置き換え VM クラスタ運用環境を想定した機能 Network Block Device プロトコル ブロックレベルの I/O プロトコル iSCSI よりはるかに単純な仕様 必要かつ十分. VM.

kyoko
Download Presentation

ライブ・ストレージマイグレーション 機構の開発とその評価

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ライブ・ストレージマイグレーション機構の開発とその評価ライブ・ストレージマイグレーション機構の開発とその評価 広渕崇宏 中田秀基 小川宏高 伊藤智 関口智嗣 t.hirofuchi _at_ aist.go.jp 産業技術総合研究所

  2. xNBDとは • xNBD- http://bitbucket.org/hirofuchi/xnbd • 開発中の高速・高機能版NBDターゲットサーバ • オリジナルNBDサーバの置き換え • VMクラスタ運用環境を想定した機能 • Network Block Deviceプロトコル • ブロックレベルのI/Oプロトコル • iSCSIよりはるかに単純な仕様 • 必要かつ十分 VM VM VM VM Host Server NBD Protocol LAN Storage Server Disk Disk

  3. xNBDの特徴(1) • Linux NBDとの完全な互換性 • カーネルドライバnbd.koで利用可能 • 既存NBDサーバよりも高速 • mmap()の利用 • 多重リクエストキューイング処理 • 複数クライアントの同時アクセス対応 • クラスタファイルシステムに対応 • OCFS2、GFS

  4. xNBDの特徴(2) • ストレージマイグレーション • VMライブマイグレーションと連動したストレージ再配置 • 遠隔拠点間VMライブマイグレーションに対応 • 分散コピーオンライト • ストレージノードをまたいだディスクイメージCoW • 分散キャッシュプロキシ • 大規模クライアントに対応 • オープンソース • GPL(応相談変更可) • まもなく公開予定 http://bitbucket.org/hirofuchi/xnbd

  5. ターゲットサーバモード 複数同時クライアント (OCFS2等と併用) 単一クライアント クライアントノード $ modprobe nbd $ echo deadline > /sys/block/nbd0/queue/scheduler $ nbd-client bs=4096 10.1.1.1 8992 /dev/nbd0 $ mkfs /dev/nbd0 ターゲットサーバノード(10.1.1.1) $ dd if=/dev/zero of=disk.img bs=4096 count=1 seek=1000000 $ xnbd-server --target --lport 8992 disk.img

  6. プロキシサーバモード クライアントノード 複数同時 クライアント 単一クライアント $ modprobe nbd $ echo deadline > /sys/block/nbd0/queue/scheduler $ nbd-client bs=4096 10.1.1.1 8992 /dev/nbd0 プロキシサーバノード $ xnbd-server --proxy --lport 8992 10.1.1.1 8992 cache.img cache.bitmap ターゲットサーバノード(10.1.1.1) $ dd if=/dev/zero of=disk.img bs=4096 count=1 seek=1000000 $ xnbd-server --target --lport 8992 disk.img テンプレートディスクイメージを複数ストレージノードで共有 各ストレージノードではデータをキャッシュ

  7. ライブVM&ストレージマイグレーション(概要)ライブVM&ストレージマイグレーション(概要) VMのライブマイグレーションと並行して 仮想ディスクも再配置

  8. ライブVM&ストレージマイグレーション(移動元でVMを起動)ライブVM&ストレージマイグレーション(移動元でVMを起動) クライアントノード(移動元Dom 0) $ modprobe nbd echo deadline > /sys/block/nbd0/queue/scheduler $ nbd-client bs=4096 10.10.1.1 8992 /dev/nbd0 $ virt-install -f /dev/nbd0 $ grep disk /etc/xen/mydomain.cfg disk = [ "phy:/dev/nbd0,xvda,w" ] $ xm create /etc/xen/mydomain.cfg ターゲットサーバノード(10.10.1.1) $ dd if=/dev/zero of=disk.img bs=4096 count=1 seek=1000000 $ xnbd-server --target --lport 8992 disk.img

  9. ライブVM&ストレージマイグレーション(VMの再配置)ライブVM&ストレージマイグレーション(VMの再配置) クライアントノード (移動元Dom 0) クライアントノード(移動先Dom 0) $ xm migrate -l 2 10.20.1.2 $ modprobe nbd $ echo deadline > /sys/block/nbd0/queue/scheduler $ nbd-client bs=4096 10.20.1.1 8992 /dev/nbd0 プロキシサーバノード(10.20.1.1) $ xnbd-server --proxy --lport 8992 10.10.1.1 8992 cache.img cache.bitmap VM再配置後徐々にディスクブロックをキャッシュしていく I/Oパスの切り替わり

  10. ライブVM&ストレージマイグレーション(残りのブロックを移動)ライブVM&ストレージマイグレーション(残りのブロックを移動) 残りのブロックを再配置後、ターゲットへの接続を終了 プロキシサーバノード(10.20.1.1) $ xnbd-bgctl --cache-all-blocks /tmp/xnbd-bg.ctl $ kill -HUP 12345 # PID of xnbd-server

  11. プロキシサーバ詳細(基本動作) キャッシュ済みブロックの読み込み まだキャッシュしていないブロックの読み込み 書き込み VM VM VM Host Host Host Host xNBD ターゲット サーバ xNBD プロキシ サーバ xNBD プロキシ サーバ xNBD プロキシ サーバ キャッシュ済みブロックビットマップ 移動先ディスクに書き込んで、キャッシュ済みとマーク。移動元への書き込みは不要。 移動元ディスクから対象ブロックを遠隔読み込みし、VMにデータを渡すとともに移動先ディスクにも保存。キャッシュ済みとビットマップにマークする。 移動先ディスクから読み込み。

  12. プロキシサーバ詳細(最適化) VM移動前 VM移動後 オンデマンドなキャッシングと並行してバックグラウンドでも、使用中のブロックを優先度の高いものからコピー。すべての使用中ブロックをコピーし終えた時点で移動完了。 VMのI/Oリクエストを分析してアクセス頻度が高い領域(Ext3グループ)を分析。 VM VM I/O リクエスト iotype: read iofrom: 0x1234 iosize: 8096 Ext2/3の特徴 グループごとにデータを局所化 Host Host グループ0 グループ1 グループ2 ディスク構造 ビットマップの解析により使用中ブロックを把握可能 xNBD プロキシ サーバ xNBD ターゲット サーバ inode データ グループ1 バックグラウンドコピーも VM移動後から開始

  13. 関連NBD実装 • オリジナルNBD • http://nbd.sourceforge.net/ • カーネルドライバがLinuxにマージ済み • ENBD (Enhanced NBD) • http://www.it.uc3m.es/ptb/nbd/ • オリジナルNBDの改良版 • 現在開発停止中? • GNBD (Global NBD) • http://sourceware.org/cluster/gnbd/ • 複数クライアント同時アクセスに対応 • 専用カーネルドライバが必要 (gnbd.ko) • DNBD (Distributed NBD) • http://lab.openslx.org/projects/show/dnbd • 読み込みキャッシュプロキシ

  14. 今後の予定 • VM再配置によるデータセンタ省電力化 • 仮想クラスタ管理システムへの統合 • 消費電力・温度センサ、負荷モニタによる状態監視 • VM再配置による動的なサーバ集約、稼動状態制御 • 詳細な性能評価 • SPECweb等の既存ベンチマーク • I/Oリクエストロギングによる実サーバ分析結果の反映 • 所内イントラウェブサーバ

  15. まとめ • xNBDの開発 • 仮想クラスタ向け分散ストレージサーバ • 分散コピーオンライト • ストレージライブマイグレーション • 既存NBDサーバを置き換えるだけでもOK • 高速 • 複数同時クライアント • More Info. • http://bitbucket.org/hirofuchi/xnbd/ • 論文等 http://grivon.apgrid.org/

More Related