vSphere 8.0 U2 で、vSphere with Tanzu の自宅ラボ環境を構築していきます。今回は、共有データストアを NFS で用意します。
今回の内容です。
このラボの共有データストアについて
このラボでは、じつは vSphere 環境をネステッド ESXi で構成しています。本来であれば共有データストアとして vSAN を利用したいところですが、メモリ / CPU の搭載量が少ない ESXi ホストでは、vSAN を有効化するとワークロードより管理用リソースのほうが多くなってしまいます。そこで今回は、VMware Photon OS で NFS サーバを構築して、共有データストアとして利用します。
ラボ環境のイメージ
今回は、NFS サーバを構築して、ESXi から NFS データストアとしてマウントします。
1. NFS サーバ用の仮想マシンの準備
Photon OS 5.0 の OVA をデプロイして、NFS サーバとしてセットアップします。ちなみに Photon OS 4.0 の頃 と同様の手順で構築できます。
まず、VMware Photon OS 5.0 の OVA ファイルをダウンロードして、ESXi にデプロイしておきます。
仮想マシンのデプロイが完了したら、パワーオンして、vSphere Client のコンソールから初回ログインします。このとき、root のパスワード変更が必要です。
- ユーザ:root
- パスワード: changeme
hostnamectl コマンドで、ホスト名を変更します。今回は、「lab-nfs-31」という名前にします。
# hostnamectl set-hostname lab-nfs-31
ネットワーク アドレスを静的に設定します。今回は、/etc/systemd/network/99-eth0.network ファイルに設定を記述します。ちなみに、このファイルを新規作成する場合は、other に対しても Read(r)のパーミッションが必要です。
# mv /etc/systemd/network/99-dhcp-en.network /etc/systemd/network/99-eth0.network # vi /etc/systemd/network/99-eth0.network
今回は、下記のように設定しました。/etc/systemd/network/99-eth0.network
[Match] Name=eth0 [Network] DHCP=no IPv6AcceptRA=no Address=192.168.10.39/24 Gateway=192.168.10.1 DNS=192.168.1.101 DNS=192.168.1.102 Domains=go-lab.jp [DHCPv4] SendRelease=no
systemd-networkd サービスを再起動して、ネットワーク設定を反映させます。
# systemctl restart systemd-networkd
設定ファイルのとおり、ネットワークが設定されたことを確認しておきます。
IP アドレスと、サブネットマスクを確認します。
# ip addr show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:50:56:81:e6:46 brd ff:ff:ff:ff:ff:ff altname eno1 altname enp11s0 altname ens192 inet 192.168.10.30/24 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe81:e646/64 scope link valid_lft forever preferred_lft forever
デフォルト ゲートウェイを確認します。
# ip route show
DNS サーバのアドレスを確認します。
# resolvectl dns | cat Global: Link 2 (eth0): 192.168.1.101 192.168.1.102
サーチ ドメインを確認します。
# cat /etc/resolv.conf | tail -n 3 nameserver 127.0.0.53 options edns0 trust-ad search go-lab.jp
iptables は停止してしまいます。
# systemctl disable iptables # systemctl stop iptables
ネットワーク接続できるようになったので、PRM のパッケージを最新化しておきます。
# tdnf update -y
OS を再起動しておきます。
# reboot
OS 再起動後にネットワーク接続ができなくなったら、DHCP の設定ファイルが再生成されているかもしれません。その場合は、/etc/systemd/network/99-dhcp-en.network ファイルを削除して、再度 OS を再起動してみてください。
2. NFS サーバの構築
今回は、400GB のストレージを持つ NFS サーバを用意します。
2-1. NFS データストア用ストレージ領域の作成
NFS サーバにする仮想マシン(lab-nfs-31)に、2つめの仮想ディスクを新規作成します。
- サイズ: 400 GB
- タイプ: シン プロビジョニング
このディスクは、ゲスト OS 側では /dev/sdb として認識されます。
# lsblk /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sdb 8:16 0 400G 0 disk
EXT4 のファイルシステムを作成します。ここで、「nfs1」というラベルを付与しておきます。
# mkfs -t ext4 -L nfs1 /dev/sdb
fstab に、マウント設定を追記します。
# echo 'LABEL=nfs1 /nfs ext4 defaults 0 0' >> /etc/fstab
/etc/fstab ファイルに設定が追記されたことを確認しておきます。
# cat /etc/fstab | tail -n 1 LABEL=nfs1 /nfs ext4 defaults 0 0
/nfs ディレクトリを作成します。
# mkdir /nfs
fstab の内容をもとに、ファイルシステムをマウントします。
# mount -a
これで、/dev/sdb が /nfs にマウントされました。
# df -h /nfs Filesystem Size Used Avail Use% Mounted on /dev/sdb 295G 28K 280G 1% /nfs
今回は、3-Zone のスーパーバイザも構成できるラボを構築しようと思います。その際に、クラスタごとに独立した共有データストアが必要になるため、ディレクトリを3つ作成しておきます。
# mkdir /nfs/{z1,z2,z3}
/nfs/z1 ~ /nfs/z3 ディレクトリが作成されました。
# ls /nfs lost+found z1 z2 z3
2-2. NFS サーバの構築
NFS サーバを構築するため、nfs-utils をインストールします。
# tdnf install nfs-utils -y
NFS サーバのサービスを有効化、起動します。
# systemctl enable nfs-server # systemctl start nfs-server
NFS 共有の設定を、/etc/exports ファイルに追記します。
# echo '/nfs *(rw,sync,no_subtree_check,no_root_squash)' >> /etc/exports
NFS サービスの設定を読み込みます。
# exportfs -r
これで、NFS サービスで /nfs 配下のディレクトリが提供できるようになりました。
# exportfs /nfs <world>
3. ESXi ホストへの NFS データストアのマウント
vSphere Client で、クラスタごとに NFS データストアをマウントします。
3-1. NFS データストアのマウント
クラスタ(lab-cluster-31)を右クリック → ストレージ →「新しいデータストア」をクリックします。
「NFS」を選択して、「次へ」をクリックします。
「NFS 3」を選択して、「次へ」をクリックします。
「NFS シェアの詳細」のパラメータを入力して、「次へ」をクリックします。
- 名前: Datastore-NFS-z1
- フォルダ: /nfs/z1
- サーバ: 192.168.10.39
クラスタに配置されている ESXi すべてを選択して、「次へ」をクリックします。
設定を確認して、「完了」をクリックします。
3-2. NFS データストアのマウント(残りのクラスタ)
残りのスーパーバイザ用クラスタにも、それぞれ NFS データストアをマウントしておきます。
lab-cluster32 クラスタの NFS データストア
- 名前: Datastore-NFS-z2
- フォルダ: /nfs/z2
- サーバ: 192.168.10.39
lab-cluster33 クラスタの NFS データストア
- 名前: Datastore-NFS-z3
- フォルダ: /nfs/z3
- サーバ: 192.168.10.39
NFS データストアごとに、1つのクラスタの ESXi のみからマウントされていることを確認しておきます。ちなみに、データストアがクラスタをまたいで共有されていると、3-Zone スーパーバイザでは利用できなくなってしまいます。
Datastore-NFS-z1 データストア → lab-cluster-31 の ESXi ホストのみ
Datastore-NFS-z2 データストア → lab-cluster-32 の ESXi ホストのみ
Datastore-NFS-z3 データストア → lab-cluster-33 の ESXi ホストのみ
つづく。