15.4. ディスクレスクライアントのエクスポートしたファイルシステムの設定
環境にリモートディスクレスシステムを設定する一環として、ディスクレスクライアント用にエクスポートしたファイルシステムを設定する必要があります。
前提条件
-
ディスクレスクライアントの
tftp
サービスが設定されている。ディスクレスクライアントの TFTP サービスの設定 セクションを参照してください。 - Dynamic Host Configuration Protocol (DHCP) サーバーが設定されている。ディスクレスクライアントの DHCP サーバーの設定 セクションを参照してください。
手順
/etc/exports
ディレクトリーにルートディレクトリーを追加して、ルートディレクトリーをエクスポートするようにネットワークファイルシステム (NFS) サーバーを設定します。詳細な手順は、以下を参照してください。完全にディスクレスのクライアントに対応できるように、Red Hat Enterprise Linux の完全なバージョンをルートディレクトリーにインストールします。これを行うには、新しいベースシステムをインストールするか、既存のインストールのクローンを作成します。
exported-root-directory をエクスポートしたファイルシステムへのパスに置き換えて、エクスポートした場所に Red Hat Enterprise Linux をインストールします。
# dnf install @Base kernel dracut-network nfs-utils --installroot=exported-root-directory --releasever=/
releasever
オプションを/
に設定すると、releasever がホスト (/
) システムから検出されます。rsync
ユーティリティーを使用して、実行中のシステムと同期します。# rsync -a -e ssh --exclude='/proc/' --exclude='/sys/' example.com:/ exported-root-directory
-
example.com は、
rsync
ユーティリティーで同期する実行中のシステムのホスト名に置き換えます。 exported-root-directory を、エクスポートしたファイルシステムへのパスに置き換えます。
このオプションには、実行中の別のシステムが必要です。これは、このコマンドでサーバーにクローンを作成します。
-
example.com は、
ファイルシステムをディスクレスクライアントで使用するには、エクスポートの準備が完了しているファイルシステムを完全に設定する必要があります。以下の手順に従って設定を完了してください。
ファイルシステムの設定
ディスクレスクライアントがサポートするカーネル (
vmlinuz-_kernel-version_pass:attributes
) をtftp
ブートディレクトリーにコピーします。# cp /exported-root-directory/boot/vmlinuz-kernel-version /var/lib/tftpboot/pxelinux/
initramfs-kernel-version.img
ファイルをローカルに作成し、NFS をサポートするエクスポートされたルートディレクトリーに移動します。# dracut --add nfs initramfs-kernel-version.img kernel-version
以下に例を示します。
# dracut --add nfs /exports/root/boot/initramfs-5.14.0-202.el9.x86_64.img 5.14.0-202.el9.x86_64
現在実行中のカーネルバージョンを使用し、既存のイメージを上書きして initrd を作成する例を以下に示します。
# dracut -f --add nfs "boot/initramfs-$(uname -r).img" "$(uname -r)"
initrd
のファイル権限を0644
に変更します。# chmod 0644 /exported-root-directory/boot/initramfs-kernel-version.img
警告initrd
のファイル権限を変更しないと、pxelinux.0
ブートローダーが "file not found" エラーを表示して失敗します。作成された
initramfs-kernel-version.img
ファイルをtftp
ブートディレクトリーにコピーします。# cp /exported-root-directory/boot/initramfs-kernel-version.img /var/lib/tftpboot/pxelinux/
/var/lib/tftpboot/pxelinux/pxelinux.cfg/default
ファイルに次の設定を追加して、initrd
とカーネルを使用するためのデフォルトのブート設定を編集します。default rhel9 label rhel9 kernel vmlinuz-kernel-version append initrd=initramfs-kernel-version.img root=nfs:_server-ip_:/exported-root-directory rw
-
この設定は、ディスクレスクライアントの root に、エクスポートされたファイルシステム (
/exported-root-directory
) を読み取り/書き込みとしてマウントするように指示します。
-
この設定は、ディスクレスクライアントの root に、エクスポートされたファイルシステム (
オプション:
/var/lib/tftpboot/pxelinux/pxelinux.cfg/default
ファイルを次の設定で編集して、ファイルシステムを 読み取り専用 形式でマウントします。default rhel9 label rhel9 kernel vmlinuz-kernel-version append initrd=initramfs-kernel-version.img root=nfs:server-ip:/exported-root-directory ro
NFS サーバーを再起動します。
# systemctl restart nfs-server.service
これで、NFS 共有をディスクレスクライアントにエクスポートできるようになりました。これらのクライアントは、Preboot Execution Environment (PXE) 経由でネットワーク経由で起動できます。