15
1 ラララ ラララララララララララララ ララララララララララ ララララ ララララ ララララ ラララ ララララ t.hirofuchi _at_ aist.go.jp ラララララララララ

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

  • 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

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

1

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

広渕崇宏 中田秀基 小川宏高 伊藤智 関口智嗣t.hirofuchi _at_ aist.go.jp

産業技術総合研究所

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

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

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

3

xNBDの特徴(1)

Linux NBD との完全な互換性 カーネルドライバ nbd.ko で利用可能

既存 NBD サーバよりも高速 mmap() の利用 多重リクエストキューイング処理

複数クライアントの同時アクセス対応 クラスタファイルシステムに対応 OCFS2 、 GFS

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

4

xNBDの特徴(2)

ストレージマイグレーション VM ライブマイグレーションと連動したストレージ再配置 遠隔拠点間 VM ライブマイグレーションに対応

分散コピーオンライト ストレージノードをまたいだディスクイメージ CoW 分散キャッシュプロキシ 大規模クライアントに対応

オープンソース GPL (応相談変更可) まもなく公開予定  http://bitbucket.org/hirofuchi/xnbd

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

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等と併用)

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

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

プロキシサーバノード

単一クライアント 複数同時クライアント

テンプレートディスクイメージを複数ストレージノードで共有各ストレージノードではデータをキャッシュ

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

7

ライブ VM&ストレージマイグレーション(概要)

VMのライブマイグレーションと並行して仮想ディスクも再配置

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

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)

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

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パスの切り替わり

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

10

ライブ VM&ストレージマイグレーション(残りのブロックを移動)

$ xnbd-bgctl --cache-all-blocks /tmp/xnbd-bg.ctl

$ kill -HUP 12345 # PID of xnbd-server

プロキシサーバノード (10.20.1.1)

残りのブロックを再配置後、ターゲットへの接続を終了

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

11

プロキシサーバ詳細(基本動作)

xNBDターゲットサーバ

VM

Host Host

xNBDプロキシサーバ

VM

Host

xNBDプロキシサーバ

VM

Host

xNBDプロキシサーバ

まだキャッシュしていないブロックの読み込み 書き込みキャッシュ済みブロックの

読み込み

移動元ディスクから対象ブロックを遠隔読み込みし、VMにデータを渡すとともに移動先ディスクにも保存。キャッシュ済みとビットマップにマークする。

キャッシュ済みブロックビットマップ

移動先ディスクに書き込んで、キャッシュ済みとマーク。移動元への書き込みは不要。

移動先ディスクから読み込み。

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

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移動後から開始

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

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 読み込みキャッシュプロキシ

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

14

今後の予定

VM 再配置によるデータセンタ省電力化 仮想クラスタ管理システムへの統合 消費電力・温度センサ、負荷モニタによる状態監視 VM 再配置による動的なサーバ集約、稼動状態制御

詳細な性能評価 SPECweb 等の既存ベンチマーク I/O リクエストロギングによる実サーバ分析結果の

反映 所内イントラウェブサーバ

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

15

まとめ

xNBD の開発 仮想クラスタ向け分散ストレージサーバ 分散コピーオンライト ストレージライブマイグレーション

既存 NBD サーバを置き換えるだけでも OK 高速 複数同時クライアント

More Info. http://bitbucket.org/hirofuchi/xnbd/ 論文等 http://grivon.apgrid.org/