2009年8月19日水曜日

vShpere4でCPUホットアド(cpu hot-add)

vShpere 4の新機能にCPUホットアドが使えるようなので設定を試してみました

使用したVMware ESX 4.0のバージョンは 4.0.0-164009

  1. SLES11 VMを作成する。
  2. SLES11 VMがインストール完了したら、シャットダウンする
  3. VM設定を開く。「オプション」タブを選び、「メモリ/CPUホットプラグ」を選択する。
  4. CPUのホットプラグで「この仮想マシンでのみCPUのホットアドを有効にします。」をチェックし保存。








  5. SLES11 VMを起動する。
  6. VM設定を開き、CPU設定で「仮想プロセッサ数」をプルダウンから"2"を選択しOKをクリックする。








  7. これで仮想CPUが2に追加された




  8. ただし、このままではSLES11 VMでは追加したCPUがオフライン状態になっているので次の設定をSLES11 VMで実施する

    1. SLES11 VMにrootでログインする
    2. 次のコマンドを実行する
    # ls /sys/devices/system/cpu
    cpu0およびcpu1フォルダが表示されていればcpu1が追加された

    # cat /sys/devices/system/cpu/online
    0と表示される。これはcpu0のみオンラインになっていることを示す

    # echo 1 > /sys/devices/system/cpu/cpu1/online
    cpu1をonlineにするために1を上記へ書き込む

    # cat /sys/devices/system/cpu/online
    今度は0-1と表示される。これでcpu1もオンラインになったことを示す

    注意
    CPUのホットアドはできてもホットリムーブはできない。
    また、一度CPUを追加するとVMのCPU設定が常に2になっているため、シャットダウン、再起動した場合に、最初から2CPUで起動してしまう。
    追加CPUが不要になったときは一度VMをシャットダウンさせて、VM設定でCPUを1に戻しておいてから再起動すればよい。

    もしくは、仮想CPUは追加しておいてSLES11 VMの中でCPU1をオフラインにしておけば仮想CPUの負荷をかけないのでそれでもよい。
    # echo 0 > /sys/devices/system/cpu/cpu1/online

2009年5月3日日曜日

PXEブートインストールの設定

SLESのインストールをインストールメディアを用意することなくできるように、ネットワークブートさせてインストールできるようになると効率がよい。これにはインストールサーバとPXEブートサーバを構築すればできるので設定方法を調べてみた。SLES11 for x86_64で実施。

PXEブートサーバを作るためには、3つの手順が必要
  1. TFTPサーバの設定
  2. PXEブート用ブートイメージおよびメニューの設定
  3. DHCPサーバの設定

[TFTPサーバの設定]
YaSTから[ネットワークサービス] > [TFTPサーバ]を選択。(注意:このときにTFTPサーバアイコンが二つあるので、白い方を選択すること。実は茶色いもう一つのTFTPサーバのアイコンは普通のFTPサーバの設定で表示名の間違い)。続いて次の設定を行う
  • [有効化]をチェック
  • [ブートイメージディレクトリ]にTFTPサーバを設定するパスを指定する
例) /srv/tftpboot/
  • [ファイアウォールでポートを開く]をチェック

[PXEブート用ブートイメージの構築]
TFTPサーバで指定したパスにPXEブートに必要なファイルをSLESのインストールメディアからコピーする。
/boot/x86_64/loader/linux
/boot/x86_64/loader/initrd
/boot/x86_64/loader/message
/boot/x86_64/loader/biostest
/boot/x86_64/loader/memtest
上記はx86_64の場合。もしx86であれば/boot/i586/loader以下からコピーする


つづいてpxelinux.0をコピーする。これもコピー先はTFTPのパス直下。もしファイルがなければsyslinuxパッケージがインストールされていないのでインストールすること
/usr/share/syslinux/pxelinux.0

つづいてPXEブート時に呼び出すメニューを作成する。
まずpxelinux.cfgフォルダを作成し、/boot/x86_64/loader/isolinux.cfgをdefaultと言う名前でコピーする。

#mkdir /srv/tftpboot/pxelinux.cfg
#cp <マウントポイント>/boot/x86_64/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default

defaultファイルを編集してPXEブートからインストールできるようにする
まずはgfxboot、readinfo、およびframebufferで始まる行を削除。
次に "# install"セクションを編集する。

[編集前]
# install
label linux
kernel linux
append initrd=initrd splash=silent showopts

[編集後]
# SLES11 for x86_64
label sles11_x86_64
kernel linux
append initrd=initrd splash=silent showopts install=http://<インストールサーバのアドレス>/sles11_x86_64

install=はnfs,samba,httpなどインストールサーバであればなんでもよいので設定したSLES11 for x86_64サーバのインストールURLを記述する。

つづいて余計な部分を削除してしまう。noacpi, nolapic, failsafe, rescueなど削除

最後にmessageファイルを編集してpxelinux.cfg/defaultで指定した"label"を入力できるようにメッセージを出力させる
linux - Installation 行を次のように変更
sles11_x86_64 - Install SUSE Linux Enterprise Server 11 for x86_64

その他の不要な部分は削除

[DHCPサーバの設定]
DHCPサーバからPXEブートサーバのアドレスとブートイメージファイルを指定する。
/etc/dchpd.confを編集する。
next-serverにPXEブートサーバのアドレスを設定
filename に"pxelinux.0"を指定

例)
subnet 192.168.1.0 netmask 255.255.255.0 {

range dynamic-bootp 192.168.1.200 192.168.1.228;
next-server ip_tftp_server:
filename "pxelinux.0";
}
設定が完了したらdhcpサーバを再起動させる

以上で完成。