vm.gowatana.jp

NEOにほんごVMware(仮)

vSphere with Tanzu 8.0 U2 ラボ環境構築。Part-03: 共有データストアの用意(NFS)

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 ホストのみ

 

つづく。