Tips

LinuxServer RAIDについて その1

LinuxServer RAIDについて その1


RAIDはハードディスクを冗長化する仕組みですが、RAIDにもソフトウェアRAIDとハード
ウェアRAIDの2種類がある
今回はLinuxのソフトウェアRAIDをXen上の仮想マシンを使用して試してみる。

Xenでのディスクの操作

まず仮想マシンにハードディスクを追加する必要があるので以下のようにして追加した。

ゲストOSにディスクをアタッチする

以下ではディスク用のファイル gestos01_d2.img を /dev/xvdb で読み書き可能でアタッチさせる

[root@hostos01 images]# xm block-attach gestos01 file://var/lib/xen/images/gestos01_d2.img /dev/xvdb w

XenでゲストOSにディスクを追加した際の確認方法

以下のコマンドで確認できる。
以下では3つのディスクがアタッチされているのがわかる。

[root@hostos01 images]# xm block-list gestos01
Vdev  BE handle state evt-ch ring-ref BE-path
51712  0  0  4  11  8     /local/domain/0/backend/tap/71/51712
51728  0  0  4  13  904   /local/domain/0/backend/vbd/71/51728
51744  0  0  4  14  1004  /local/domain/0/backend/vbd/71/51744

block-list の 先頭のID とデバイス名の関係性
デバイス名とIDは必ず以下のようになる。
これを参考にデバイスを見分ければよい。
/dev/hda 768
/dev/hdb 832
/dev/hdc 5632
/dev/hdd 5696
/dev/sda 2048
/dev/sdb 2064
/dev/sdc 2080
/dev/sdd 2096
/dev/xvda 51712
/dev/xvdb 51728
/dev/xvdc 51744
/dev/hdd 51760

アタッチしたディスクを外す場合

現在のアタッチ状況を確認してみる。

[root@hostos01 images]# xm block-list gestos01
Vdev  BE handle state evt-ch ring-ref BE-path
51712    0    0     4      11     8     /local/domain/0/backend/tap/92/51712
51728    0    0     4      13     961   /local/domain/0/backend/vbd/92/51728
51744    0    0     4      14     87    /local/domain/0/backend/vbd/92/51744
51760    0    0     4      15     975   /local/domain/0/backend/vbd/92/51760

ゲストOSに割り当てているディスクをデタッチ(外す)には -f による強制オプションが必要らしい。(アタッチする際もゲストOSが起動していても問題なかった)

[root@hostos01 images]# xm block-detach gestos01 /dev/xvdd
Error: Device 51760 (vbd) disconnect failed - Device in use; refusing to close.
Usage: xm block-detach <Domain> <DevId> [-f|--force]

Destroy a domain's virtual block device.

強制的にデタッチすると成功する(エラーメッセージみたいなものが出るが正常にデタッチされるので大丈夫)

[root@hostos01 images]# xm block-detach gestos01 /dev/xvdd -f
Error: Device 51760 not connected
Usage: xm block-detach <Domain> <DevId> [-f|--force]

Destroy a domain's virtual block device.

確認するとディスクがデタッチされているのがわかる

[root@hostos01 images]# xm block-list gestos01
Vdev  BE handle state evt-ch ring-ref BE-path
51712    0    0     4      11     8     /local/domain/0/backend/tap/92/51712
51728    0    0     4      13     961   /local/domain/0/backend/vbd/92/51728
51744    0    0     4      14     87    /local/domain/0/backend/vbd/92/51744


※上記の xm block-detach gestos01 /dev/xvdd -f コマンドでディスクを外した場合の注意点
強制的に外した状態で再度 xm block-attach コマンドで同じ /dev/xvdd をアタッチしようとすると下記のようにエラーになる。

[root@hostos01 images]# xm block-attach gestos01 file://var/lib/xen/images/gestos01_d4.img /dev/xvdd w
Error: Device 51760 (vbd) could not be connected. /etc/xen/scripts/block failed; error detected.
Usage: xm block-attach <Domain> <BackDev> <FrontDev> <Mode>

Create a new virtual block device.

この場合は一度下記のようにアタッチしたいDomUを destroy する必要がある。

[root@hostos01 images]# xm destroy gestos01
[root@hostos01 images]#
[root@hostos01 images]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      393     2 r----- 739311.1
gestos02                                  66      512     2 -b----   1004.6
gestos02                                  67      512     2 -b----   1012.0
gestos03                                  70      512     2 -b----    928.5
gestos04                                  69      512     2 -b----    870.0

再度DomUを起動する

[root@hostos01 images]# xm create gestos01
Using config file "/etc/xen/gestos01".
Using <class 'grub.GrubConf.GrubConfigFile'> to parse /grub/menu.lst
Started domain gestos01

追加できた

[root@hostos01 images]# xm block-attach gestos01 file://var/lib/xen/images/gestos01_d4.img /dev/xvdd w
[root@hostos01 images]#

とおもったら、以下の用に他のディスクが外れてしまっていた。
なんだか不思議な動きをするものだ。

[root@hostos01 images]# xm block-list gestos01
Vdev  BE handle state evt-ch ring-ref BE-path
51712    0    0     4      11     8     /local/domain/0/backend/tap/96/51712
51760    0    0     4      12     44    /local/domain/0/backend/vbd/96/51760

仕方ないので再度すべてのディスクを追加して対応した。


※xm block-detach コマンドの注意点
DomUを destroy した状態で下記の用に実行すると /dev/xvdd だけをデタッチするつもりが
すべてのアタッチしているディスクが外れてしまうことがあるので注意する(DomUを起動した状態で上記の用に強制オプションを指定して外せば大丈夫)
xm block-detach gestos01 /dev/xvdd -f

※Dom0を再起動してもDomUにてディスクをアタッチしておきたい場合
ちなみにDom0を再起動させても設定を有効にしたいなら以下のファイルに追記する必要があるらしい
Dom-0で /etc/xen/ ディレクトリ以下のディスクをアタッチさせたいDomUの設定ファイルに以下の用に追記する(xxxの部分はドメイン名やディスク名を入れる)

[root@hostos01 images]# vi /etc/xen/gestos01
 disk = [ "tap:aio:/data/xen/xxx.img,xvda,w","file:/data/xen/xxx_add_disk.img,xvdb1,w" ]

今回はここまでで次回はRAIDを実際に作成していくことにする

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search