Upload
kyoko
View
43
Download
2
Embed Size (px)
DESCRIPTION
ライブ・ストレージマイグレーション 機構の開発とその評価. 広渕崇宏 中田秀基 小川宏高 伊藤智 関口智嗣 t.hirofuchi _at_ aist.go.jp 産業技術総合研究所. xNBD とは. xNBD - http://bitbucket.org/hirofuchi/xnbd 開発中の高速・高機能版 NBD ターゲットサーバ オリジナル NBD サーバの置き換え VM クラスタ運用環境を想定した機能 Network Block Device プロトコル ブロックレベルの I/O プロトコル iSCSI よりはるかに単純な仕様 必要かつ十分. VM. - PowerPoint PPT Presentation
Citation preview
1
ライブ・ストレージマイグレーション機構の開発とその評価
広渕崇宏 中田秀基 小川宏高 伊藤智 関口智嗣t.hirofuchi _at_ aist.go.jp
産業技術総合研究所
2
xNBDとは
xNBD - http://bitbucket.org/hirofuchi/xnbd 開発中の高速・高機能版 NBD ターゲットサーバ オリジナル NBD サーバの置き換え VM クラスタ運用環境を想定した機能
Network Block Device プロトコル ブロックレベルの I/O プロトコル iSCSI よりはるかに単純な仕様 必要かつ十分
DiskDisk
VMVM Host Server
VM VM
Storage Server
NBDProtocolLAN
3
xNBDの特徴(1)
Linux NBD との完全な互換性 カーネルドライバ nbd.ko で利用可能
既存 NBD サーバよりも高速 mmap() の利用 多重リクエストキューイング処理
複数クライアントの同時アクセス対応 クラスタファイルシステムに対応 OCFS2 、 GFS
4
xNBDの特徴(2)
ストレージマイグレーション VM ライブマイグレーションと連動したストレージ再配置 遠隔拠点間 VM ライブマイグレーションに対応
分散コピーオンライト ストレージノードをまたいだディスクイメージ CoW 分散キャッシュプロキシ 大規模クライアントに対応
オープンソース GPL (応相談変更可) まもなく公開予定 http://bitbucket.org/hirofuchi/xnbd
5
ターゲットサーバモード
$ dd if=/dev/zero of=disk.img bs=4096 count=1 seek=1000000
$ xnbd-server --target --lport 8992 disk.img
$ 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)
クライアントノード単一クライアント 複数同時クライアント
( OCFS2等と併用)
6
プロキシサーバモード
$ dd if=/dev/zero of=disk.img bs=4096 count=1 seek=1000000
$ xnbd-server --target --lport 8992 disk.img
$ modprobe nbd
$ echo deadline > /sys/block/nbd0/queue/scheduler
$ nbd-client bs=4096 10.1.1.1 8992 /dev/nbd0
ターゲットサーバノード (10.1.1.1)
クライアントノード
$ xnbd-server --proxy --lport 8992 10.1.1.1 8992 cache.img cache.bitmap
プロキシサーバノード
単一クライアント 複数同時クライアント
テンプレートディスクイメージを複数ストレージノードで共有各ストレージノードではデータをキャッシュ
7
ライブ VM&ストレージマイグレーション(概要)
VMのライブマイグレーションと並行して仮想ディスクも再配置
8
ライブ VM&ストレージマイグレーション(移動元で VMを起動)$ 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
クライアントノード(移動元 Dom 0)
$ dd if=/dev/zero of=disk.img bs=4096 count=1 seek=1000000
$ xnbd-server --target --lport 8992 disk.img
ターゲットサーバノード (10.10.1.1)
9
ライブ VM&ストレージマイグレーション( VMの再配置)
$ xm migrate -l 2 10.20.1.2
クライアントノード(移動元 Dom 0)
$ xnbd-server --proxy --lport 8992 10.10.1.1 8992 cache.img cache.bitmap
プロキシサーバノード (10.20.1.1)
$ modprobe nbd
$ echo deadline > /sys/block/nbd0/queue/scheduler
$ nbd-client bs=4096 10.20.1.1 8992 /dev/nbd0
クライアントノード(移動先 Dom 0)
VM再配置後徐々にディスクブロックをキャッシュしていく
I/Oパスの切り替わり
10
ライブ VM&ストレージマイグレーション(残りのブロックを移動)
$ xnbd-bgctl --cache-all-blocks /tmp/xnbd-bg.ctl
$ kill -HUP 12345 # PID of xnbd-server
プロキシサーバノード (10.20.1.1)
残りのブロックを再配置後、ターゲットへの接続を終了
11
プロキシサーバ詳細(基本動作)
xNBDターゲットサーバ
VM
Host Host
xNBDプロキシサーバ
VM
Host
xNBDプロキシサーバ
VM
Host
xNBDプロキシサーバ
まだキャッシュしていないブロックの読み込み 書き込みキャッシュ済みブロックの
読み込み
移動元ディスクから対象ブロックを遠隔読み込みし、VMにデータを渡すとともに移動先ディスクにも保存。キャッシュ済みとビットマップにマークする。
キャッシュ済みブロックビットマップ
移動先ディスクに書き込んで、キャッシュ済みとマーク。移動元への書き込みは不要。
移動先ディスクから読み込み。
12
プロキシサーバ詳細(最適化)
xNBDターゲットサーバ
Host
VM
VM移動前
I/O リクエストiotype: readiofrom: 0x1234iosize: 8096
オンデマンドなキャッシングと並行してバックグラウンドでも、使用中のブロックを優先度の高いものからコピー。すべての使用中ブロックをコピーし終
えた時点で移動完了。
ディスク構造グループ0
inode データ
グループ1
グループ2
グループごとにデータを局所化
VMの I/Oリクエストを分析してアクセス頻度が高い領域( Ext3グループ)を分析。
VM
Host
xNBDプロキシサーバ
VM移動後
Ext2/3の特徴
ビットマップの解析により使用中ブロックを把握可能
グループ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/