2つの結合されたインターフェイスを持つNFSルートで起動するようにサーバーを構成したいと思います。
NFSルート対応のinitrdと次のカーネルパラメータを使用して、1つのネットワークインターフェイスでNFSルートを正常にセットアップできました。
root=/dev/nfs nfsroot=192.168.1.1:/nfsroot/ubuntu ip=dhcp initrd=initrd.img
NFS-rootとのボンディングを設定する方法に関する情報を見つけました ブログ投稿で 。
Ubuntuを使用しているので、/etc/initramfs-tools/modules
の最後にボンディングモジュールを追加する必要がありました。新しいinitrdを作成し、カーネルパラメーターを使用しました
root=/dev/nfs nfsroot=192.168.1.1:/nfsroot/ubuntu biosdevname=0 bond=bond0:eth0,eth1:mode=4:miimon=100:lacp-rate=1:slaves=none:xmit_hash_policy=layer3+4 ip=bond0:dhcp initrd=initrd.img
サーバーを起動すると、メッセージの直後に表示されるカーネルパニックが発生します
ipconfig: can't parse IP address 'bond0'
誰かが私がこの問題を解決するのを手伝ってくれる?
ブートログの関連部分は この要点 にあります。
更新:
Ubuntuのブートプロセスを深く掘り下げた後、最初のramdiskを作成するための現在2つの異なるアプローチがあることがわかりました。 Ubuntuはinitramfs-toolsを使用し、RedHatは新しいdracutツールを使用します。私が参照したブログ投稿はFedora用に書かれており、dracut用にリストされているブートパラメーターはUbuntuでは使用できません。 initramfs-toolsで結合されたインターフェースを処理する方法がわからなかったので、Ubuntuでdracutを使用し、ブログ投稿に調査結果を書きました NFSルートからUbuntu12.10を起動するためのdracutのインストールと構成a VLAN結合インターフェースを使用したタグ付きネットワーク 。
少しスクリプトを作成した後、カーネルコマンドラインで指定された動的スレーブインターフェイスを使用して、initramfs-toolsで動作させることができました。
ボンディングモジュールとイーサネットモジュールを/etc/initramfs-tools/modules
に追加します
igb
bonding
次に、0755パーマで/etc/initramfs-tools/scripts/nfs-top/00_bonding_init
を作成し、次の情報を入力します。
#!/bin/sh -e
PREREQS=""
case $1 in
prereqs) echo "${PREREQS}"; exit 0;;
esac
echo "Network interfaces loaded: "
echo `ls /sys/class/net`
for x in $cmdline; do
case $x in
bondslaves=*)
bondslaves="${x#bondslaves=}"
;;
esac
done
IFS=","
for x in $bondslaves; do
echo "+$x" > /sys/class/net/bond0/bonding/slaves
done
その後、bondslaves = kernel cmdlineパラメーターを使用して、スレーブインターフェイスを指定できるようになります。例:boot=nfs root=/dev/nfs initrd=ubuntu/initrd.img-3.13.0-44-generic ip=:::::bond0:dhcp aufs=tmpfs console=ttyS1,115200 console=tty0 bondslaves=p1p1,p1p2
ip=bond0:dhcp
をip=:::::bond0:dhcp
に変更してみてください
交換
ip = bond0:dhcp
と
ip = bootp