Posted: 2026-05-20
| Categories:
pxe
| Tags:
dracut ,
gentoo ,
nfs ,
overlayfs ,
pxe
PXE GentooでNFS rootにtmpfs overlayを重ねる設計 PXE boot の root filesystem を NFS に置くと、rootfs 更新や rollback は楽になる。一方で、各 node が rootfs に直接書き込むと、検証環境ほど状態が散らばりやすい。
そこで、NFS root を read-only lower として扱い、PXE client 側の tmpfs を upper/work にした overlayfs root にする。
この構成では、rootfs の差分は reboot で消える。永続化が必要なものだけを、用途別の volume や明示的な mount に逃がす。
本文中の 192.0.2.0/24 は説明用の documentation range である。OpenWrt 実機で NFS root / TFTP / DHCP を反映する場合は、外部 inventory の openwrt_lan_ipaddr、openwrt_dhcp_ntp_servers、openwrt_gentoo_server_host を実値として明示し、documentation range が endpoint に残っていれば止める。
基本構成 flowchart TD
A[PXE firmware<br/>DHCP + TFTP] --> B[Kernel + initramfs]
B --> C[dracut<br/>network + nfs]
C --> D[NFS root<br/>read-only lower]
C --> E[tmpfs<br/>upper + work]
D --> F[overlayfs merged root]
E --> F
F --> G[switch_root]
G --> H[systemd]
root overlay の目標状態は次のような形になる。
Read more... Posted: 2016-02-21
| Categories:
nfs
| Tags:
nfs
NFS キャッシュを確認 systemtapでファイルシステムキャッシュのヒット率を見る
ごみファイルができる .nfs????に関して
http://www.drk7.jp/MT/archives/001341.html
NFS の性能を最適化する
NFS の動作に特化した解析をより詳しく行うには、
nfsstat コマンドをつかってNFS トランザクション、クライアント/サーバの統計、ネットワークの統計などを見てください。
"-o net" オプションを用いると、トランザクションの総パケット数に対するパケット落ちの回数が表示されます。
UDP トランザクションで最も重要な統計は再送数で、これはパケット落ち、ソケットのバッファオーバーフロー、一般的なサーバの過負荷、タイムアウトなどによって生じます。
これは NFS の性能に非常に重要な影響を与えるので、注意深く見る必要があります。
現在の nfsstat はカウンタをゼロにリセットする -z オプションを実装しています。
ベンチマークを行う前に -z でリセットしてから計測するのが一般的です。
showmount -e でexports状況を確認する http://linux.kororo.jp/cont/server/nfs.php
/etc/exports ファイルを編集しなおした場合、exportfs コマンドを使用して、設定の変更を反映させます。このコマンドを実行しない限り設定は反映されないので注意してください。
# exportfs -ra
■設定の確認
設定を確認するには、showmount コマンドを使用します。
# showmount -e
Export list for ns1.kororo.jp:
/usr/local/src *.kororo.jp
/export/home 198.51.100.0/255.255.255.224
-a 全てのマウントポイントを表示する
-d 共有しているディレクトリ名のみ表示する
-e ディレクトリを共有可能な相手を表示する
oracleのSolarisのページ share コマンド (Solaris のシステム管理 (ネットワークサービス)) - Sun Microsystems
Read more... Posted: 2016-02-21
| Categories:
nfs
| Tags:
nfs
nfs
/etc/exportsの疑問 サブディレクトリは自動的にexportsできないの? k007:/etc/exportsにて
/usr2/kickstart/docs/rpm 198.51.100.0/255.255.254.0(ro,no_subtree_check,no_root_squash) 198.51.100.0/23(ro,no_subtree_check,no_root_squash)
と記載しているだけだと、サブディレクトリのマウントに失敗する(これはPXEブートじゃ無くても同様)
mount -t nfs k007:/usr2/kickstart/docs/rpm/u1204-32bit /media
みたいな感じでもマウントに失敗する。
/usr2/kickstart/docs/rpm/u1204-32bit 198.51.100.0/255.255.254.0(ro,no_subtree_check,no_root_squash) 198.51.100.0/23(ro,no_subtree_check,no_root_squash)
このようにサブディレクトリまで指定するとマウントに成功する。不思議、というか困るのはNFSサーバには下記の様に成功のログが複数行にわたって出力される点、
Apr 27 18:27:45 k007 mountd[21410]: authenticated mount request from 198.51.100.18:948 for /usr2/kickstart/docs/rpm/u1204-32bit (/usr2/kickstart/docs/rpm)
Apr 27 18:27:44 k007 mountd[21410]: request to export directory /usr2/kickstart/docs/rpm/u1204-32bit below nearest filesystem /usr2/kickstart/docs/rpm
ので問題の特定に時間がかかった。
Read more... Posted: 2016-02-21
| Categories:
nfs
| Tags:
nfs
Ubuntuのマスターを作成する NFS-root用のマスターを作る(このマスターのファイルを後でまるごとコピーする)ため,ゲストOSをひとつ作成し、インストールを行う(終了しないこと、initrd.imgを作るため)
この時は最新のアップデートにはしなくて良いと思う。
インストールが終わったら終了しない。
chrootしてinitrdイメージを更新する
vi /etc/initramfs-tools/initramfs.conf
# 下記の2箇所を変更
MODULES=netboot
BOOT=nfs
DEVICE=eth0
DEVICE は initramfs に渡すデバイス名の指定。最近の Ubuntu/Debian は予測可能な IF 名(ensX など)になりやすいので、NFS ルートの IF 指定はカーネル引数 ip=…/BOOTIF を使う方が確実。
ルータをNFSroot化してみた(20090808-154428) « ふがっさむ・WP
initramfs-toolsを使ってinitrd.imgを作る
mkinitramfs -o /root/initrd.img
initramfsコマンドが無かったら下記で更新
/boot配下のinitramfsファイルが更新される
vmlinuzをコピー
cp /boot/vmlinuz-* /root/vmlinuz
scpで他のサーバにコピーしておく。
再起動後、とりあえず使うものをインストール マスターイメージからコピーを行う イメージをマウントする ※ 仮想化ホストでは行わないこと imgファイルをループバックデバイスとしてマウントする。
開いているループバックデバイスを表示
[root@fs04 qemu]# losetup -f
/dev/loop0
空いているループバックデバイスにimgファイルを紐づける
losetup /dev/loop0 /usr2/vm_image/KVM_Ubuntu_10_10_master.img
fdisk でパーテーションを確認
kpartxでデバイスマッパーに登録
デバイスマッパーの確認
Read more...