KVM入門一覧
- 【KVM入門⓪】〜Linuxの基礎知識〜
- 【KVM入門①】〜KVMを使って仮想マシンを作成する〜
- 【KVM入門②】〜複数の仮想マシンを作成して仮想マシン間で通信を行えるようにする〜
- 【KVM入門③】〜DNSとhostsの設定を行う〜
- 【KVM入門④】〜NFSを使って全ての仮想マシンでファイルを共有する〜👈今ここ
- 【KVM入門⑤】〜LDAPを使ってユーザ情報などを一元管理する〜
はじめに
KVMシリーズ第4回です。
今回は、NFSを使って全ての仮想マシンでファイルを共有できるようにしていきます。
test-vm1
をサーバ、test-vm2
からtest-vm4
をクライアントとして、以下の図の赤色の部分の設定をするところまでをこの回の目標とします。
すること
サーバ側(test-vm1
)
1. パッケージのインストール
パッケージマネージャのアップデートを行う。
sudo dnf update -y
nfs-utilsをインストールする。
sudo dnf install -y nfs-utils
2. /etc/exportsの編集
公開するディレクトリを作成する。
sudo mkdir /mnt/test
ファイルを編集する。
vi /etc/exports
以下を追記し、172.16.1.0/24
からの接続を許可する。
/mnt/test 172.16.1.0/24(rw,no_root_squash)
設定を反映する。
sudo exportfs -rav
成功すれば以下のように表示される。
[xxx@vm1 ~]# sudo exportfs -rav
exporting 172.16.1.0/24:/mnt/test
nfs-serverサービスを起動し、さらに自動起動を有効にする。
sudo systemctl enable nfs-server --now
3. ファイアウォールの設定
ファイアウォールを起動していなかったら起動する。
sudo systemctl enable firewalld --now
nfsサービスをfirewalldサービスに追加する。
sudo firewall-cmd --add-service=nfs --permanent
firewalldサービスを再起動する。
sudo firewall-cmd --reload
以下のように表示されればファイアウォールの設定は成功している。
[xxx@vm1 ~]# sudo firewall-cmd --add-service=nfs --permanent
success
[xxx@vm1 ~]# sudo firewall-cmd --reload
success
[xxx@vm1 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp1s0
sources:
services: cockpit dhcpv6-client nfs ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
クライアント側(test-vm2
からtest-vm4
)
1. パッケージのインストール
パッケージマネージャのアップデートを行う。
sudo dnf update -y
nfs-utilsをインストールする。
sudo dnf install -y nfs-utils
2. マウント
マウントポイントを作成する。
sudo mkdir /mnt/test
マウントする。
sudo mount -t nfs vm1:/mnt/test /mnt/test
以下のように表示されればマウントは成功している。
[xxx@vm2 ~]# sudo mount -t nfs vm1:/mnt/test /mnt/test
[xxx@vm2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 888M 0 888M 0% /dev/shm
tmpfs 356M 33M 323M 10% /run
/dev/mapper/rl-root 26G 3.4G 23G 14% /
/dev/vda1 960M 366M 595M 39% /boot
tmpfs 178M 4.0K 178M 1% /run/user/2000
vm1:/mnt/test 26G 1.6G 25G 7% /mnt/test
3. OS起動時の自動マウントの設定
今のままでは以下のようにOSを再起動したときに自動でマウントしてくれない。
[xxx@vm2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 888M 0 888M 0% /dev/shm
tmpfs 356M 33M 323M 10% /run
/dev/mapper/rl-root 26G 3.4G 23G 14% /
/dev/vda1 960M 366M 595M 39% /boot
tmpfs 178M 4.0K 178M 1% /run/user/2000
vm1:/mnt/test 26G 1.6G 25G 7% /mnt/test
[xxx@vm2 ~]# reboot
...
Rocky Linux 9.4 (Blue Onyx)
Kernel 5.14.0-427.18.1.el9_4.x86_64 on an x86_64
vm2 login:
Password:
Last login: Sun Jun 2 07:15:55 on ttyS0
[xxx@vm2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 888M 0 888M 0% /dev/shm
tmpfs 356M 33M 323M 10% /run
/dev/mapper/rl-root 26G 3.4G 23G 14% /
/dev/vda1 960M 366M 595M 39% /boot
tmpfs 178M 4.0K 178M 1% /run/user/2000
そのため/etc/fstabファイルを編集して自動でマウントしてくれるようにする。
vi /etc/fstab
以下を追記する。
vm1:/mnt/test /mnt/test nfs rw 0 0
一旦アンマウントしてOSを再起動して、自動でマウントされていれば成功している。
[xxx@vm2 ~]# sudo umount /mnt/test
[xxx@vm2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 888M 0 888M 0% /dev/shm
tmpfs 356M 5.1M 351M 2% /run
/dev/mapper/rl-root 26G 3.4G 23G 14% /
/dev/vda1 960M 366M 595M 39% /boot
tmpfs 178M 4.0K 178M 1% /run/user/0
[xxx@vm2 ~]# reboot
...
Rocky Linux 9.4 (Blue Onyx)
Kernel 5.14.0-427.18.1.el9_4.x86_64 on an x86_64
vm2 login:
Password:
Last login: Sun Jun 2 07:15:55 on ttyS0
[xxx@vm2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 888M 0 888M 0% /dev/shm
tmpfs 356M 5.1M 351M 2% /run
/dev/mapper/rl-root 26G 3.4G 23G 14% /
/dev/vda1 960M 366M 595M 39% /boot
vm1:/mnt/test 26G 1.6G 25G 7% /mnt/test
tmpfs 178M 4.0K 178M 1% /run/user/0
さいごに
今回はNFSを使って全ての仮想マシンでファイルを共有する方法を紹介しました。
次回はLDAPを使ってユーザ情報などを一元管理できるようにしていきます。