vSphereの共有ディスク設定方法(VMDKファイル編)

スポンサーリンク

VMDKファイルを使用した共有ディスクの設定方法を説明します。VMware製品で共有ディスクを使用したクラスタリングなどの動作確認をするためには、0埋めした(Eager Zeroed)シックディスクを作成し、「マルチライター」を設定するなどの幾つかの制約事項があります。

事前準備

以下スクリーンショットのような構成で、centos50とcentos51の間で共有ディスクを作成する方法を考えます。

共有ディスクの検証環境

仮想マシンの設定

1台目の設定

「1台目の仮想マシン」の右クリックメニューで、「設定の編集」を選びます。

共有ディスク 1台目の設定 01

「新規デバイスの追加」で「SCSIコントローラー」を選びます。

共有ディスク 1台目の設定 02

SCSIパスの共有は「物理」を選びます。

SCSIパスの共有の設定の意味は「SCSI コントローラ設定の変更」を参照ください。

共有ディスク 1台目の設定 03

「新規デバイスの追加」で「ハードディスク」を選びます。

共有ディスク 1台目の設定 04

「ディスクプロビジョニング」を「シックプロビジョニング(Lazy Zeroed)」から「シックプロビジョニング(Eager Zeroed)」に変更します。ディスク共有するためには、ゼロ埋めしたディスクが必須です。

「共有」を「マルチライター」に変更します。これを変更しないと、クラスタを組む2台の仮想マシンを同時に起動できません。

「ディスクモード」は「独立型:通常」を選びます。

「仮想デバイスノード」は前述の操作で作成したSCSIコントローラーを指定します。

共有ディスク 1台目の設定 05

2台目の設定

「2台目の仮想マシン」の右クリックメニューで、「設定の編集」を選びます。

共有ディスク 2台目の設定 01

「新規デバイスの追加」で「SCSIコントローラー」を選びます。

共有ディスク 2台目の設定 02

SCSIパスの共有は「物理」を選びます。

SCSIパスの共有の設定の意味は「SCSI コントローラ設定の変更」を参照ください。

共有ディスク 2台目の設定 03

「新規デバイスの追加」で「既存のハードディスク」を選びます。

共有ディスク 2台目の設定 04

1台目で追加したディスクのVMDKファイルを選びます。

共有ディスク 2台目の設定 05

「共有」を「マルチライター」に変更し、「ディスクモード」を「独立型:通常」に変更します。「仮想デバイスノード」は前述の操作で作成したSCSIコントローラーを指定します。

共有ディスク 2台目の設定 06

動作確認

仮想マシンの起動

前述の手順で設定したcentos50, centos51を起動します。「マルチライター」などの設定に誤りがあると、ここでの起動操作に失敗します。

起動操作

1台目ディスクのマウント操作

1台目の仮想マシンにてディスクを認識している事を確認します。

[root@centos50 ~]# fdisk -l
ディスク /dev/sda: 50 GiB, 53687091200 バイト, 104857600 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 83F90A99-041C-415E-8DBA-595D6C1E0B2A

デバイス   開始位置  終了位置    セクタ サイズ タイプ
/dev/sda1      2048   1230847   1228800   600M EFI システム
/dev/sda2   1230848   3327999   2097152     1G Linux ファイルシステム
/dev/sda3   3328000   4376575   1048576   512M Linux スワップ
/dev/sda4   4376576 104855551 100478976  47.9G Linux ファイルシステム


ディスク /dev/sdb: 5 GiB, 5368709120 バイト, 10485760 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

ディスクを何らかのファイルシステムでフォーマットし、これを適当なディレクトリにマウントします。

ext4やxfsは複数のOSから同時にアクセスされる事を想定したファイルシステムではありません。説明を簡易にするためにext4やxfsを紹介しましたが、もっともらしい検証シナリオをするならばMSFCやOracle RACに挑戦するのが良いでしょう。

[root@centos50 ~]# mkfs -t ext4 /dev/sdb
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: 2215234f-1fc7-4a77-a09c-dfd2a4a235c7
Superblock backups stored on blocks: 
  32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

[root@centos50 ~]# mkdir /share
[root@centos50 ~]# mount /dev/sdb /share
[root@centos50 ~]# 

何か適当なファイルを作成します。

[root@centos50 ~]# echo "centos50 : this is test" >> /share/test50.txt
[root@centos50 ~]# cat /share/test50.txt 
centos50 : this is test
[root@centos50 ~]# 
[root@centos50 ~]# ls -l /share/
合計 20
drwx------ 2 root root 16384  4月 22 23:34 lost+found
-rw-r--r-- 1 root root    24  4月 22 23:34 test50.txt
[root@centos50 ~]# 

ここで電源断障害を再現するために、centosのパワーオフをします。

電源断

2台目ディスクのマウント操作

2台目の仮想マシンにてディスクを認識している事を確認します。

[root@centos51 ~]# fdisk -l
ディスク /dev/sdb: 5 GiB, 5368709120 バイト, 10485760 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト


ディスク /dev/sda: 50 GiB, 53687091200 バイト, 104857600 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 83F90A99-041C-415E-8DBA-595D6C1E0B2A

デバイス   開始位置  終了位置    セクタ サイズ タイプ
/dev/sda1      2048   1230847   1228800   600M EFI システム
/dev/sda2   1230848   3327999   2097152     1G Linux ファイルシステム
/dev/sda3   3328000   4376575   1048576   512M Linux スワップ
/dev/sda4   4376576 104855551 100478976  47.9G Linux ファイルシステム

これを適当なディレクトリにマウントします。

1台目でフォーマット操作済みのため、2台目ではフォーマットしない。

[root@centos51 ~]# mkdir /share
[root@centos51 ~]# mount /dev/sdb /share
[root@centos51 ~]# 

centos50で作成したファイルが見える事を確認します。

ここで、centos50.txtが0byteになっていますが、これはext4が複数のOSからアクセスされる事を想定したファイルシステムではないためです。もっともらしい検証シナリオをするならばMSFCやOracle RACに挑戦するのが良いでしょう。

[root@centos51 ~]# ls -l /share/
合計 16
drwx------ 2 root root 16384  4月 22 23:34 lost+found
-rw-r--r-- 1 root root     0  4月 22 23:34 test50.txt
[root@centos51 ~]# 
タイトルとURLをコピーしました