2010年11月28日日曜日

Nexenta3.0.1をPXEインストール


このエントリーをはてなブックマークに追加


Nexenta 3.0.1で正式実装されたZFS DeDupeを試すために、Nextentaを準備するのだが、いちいちメディアを準備するのが面倒なのでPXEでネットワークインストールしてみる。

基本的にはLinuxをPXEインストールするのと変わりなく、DHCP、TFTP、NFSを組み合わせて行う事になる。

参考>> PXE ブートによるネットワークインストール(CentOS 5.5)
Table of Contents
=================
1 検証した環境 
2 NFSサーバの準備 
    2.1 isoイメージをマウント 
    2.2 isoイメージをフルコピー 
    2.3 NFSでエクスポートしておく 
3 PXEブートサーバの設定 
    3.1 TFTPのインストールと設定 
    3.2 DHCPサーバの設定 
4 NexentaのPXEインストール


1 検証した環境

PXE/DHCP/TFTPサーバ:CentOS5.5(192.168.1.71)
NFSサーバ:Solaris10(192.168.1.10)

Nexentaのインストール先:Sun Ultra 27


2 NFSサーバの準備

# wget http://www.nexenta.org/releases/nexenta-core-platform_3.0.1-b134_x86.iso.zip
# unzip nexenta-core-platform_3.0.1-b134_x86.iso.zip
# lofiadm -a /spool/cifs01/OSimage/Nexenta/nexenta-core-platform_3.0.1-b134_x86.iso
  /dev/lofi/3


2.1 isoイメージをマウント

# mount -F hsfs -r /dev/lofi/3 /mnt/nfs01
# cd /mnt/nfs01
# ls -alF
   合計 895223
   dr-xr-xr-x   2 root     sys         2048  9月  7日  23:41 ./
   drwxr-xr-x   9 root     sys            9  8月  8日  03:46 ../
   -r--r--r--   1 root     root        2048  9月  7日  23:41 .catalog
   dr-xr-xr-x   3 root     root        2048  9月  7日  23:40 boot/
   drwxr-xr-x   4 root     root        2048  9月  7日  23:38 platform/
   -r--r--r--   1 root     root     458344448  9月  7日  23:41 usr.img.zlib

2.2 isoイメージをフルコピー

# mkdir -p /spool/pxeimages/nexenta3.0.1
# cp -Rp * /spool/pxeimages/nexenta3.0.1/


2.3 NFSでエクスポートしておく

(既にこの領域はZFS sharenfsで共有済み)
# share
   -    /spool/cifs01    sec=sys,ro,root=@192.168   ""
   -    /spool/archive   sec=sys,root=@192.168,ro   ""
   -    /spool/pxeimages sec=sys,ro   ""
   -    /spool/home      rw=sol10-u24   ""
   -    /spool/kvmnfs01  sec=sys,root=@192.168,rw=@192.168   ""

# zfs get sharenfs spool/pxeimages
   NAME             PROPERTY  VALUE     SOURCE
   spool/pxeimages  sharenfs  ro,root   local


3 PXEブートサーバの設定

CentOS上でTFTP/DHCPサーバを構築する。


3.1 TFTPのインストールと設定

事前にtfpのルートディレクトリを作っておく
[root@centos55 ~]# mkdir /tftpboot

パッケージのインストール
[root@centos55 ~]# yum install tftp*
[root@centos55 ~]# rpm -qa |grep tftp
   tftp-server-0.49-2.el5.centos
   tftp-0.49-2.el5.centos

起動する(xinetd経由で起動される)
[root@centos55 ~]# chkconfig --list |grep tftp
   tftp:           off

[root@centos55 ~]# chkconfig tftp on
[root@centos55 ~]# chkconfig --list |grep tftp
   tftp:           on

必要ファイルをNexentaのCDから取ってくる
[root@centos55 tftpboot]# showmount -e sol10-u24
   Export list for sol10-u24:
   /spool/cifs01    (everyone)
   /spool/archive   (everyone)
   /spool/pxeimages (everyone)
   /spool/home      sol10-u24
   /spool/kvmnfs01  @192.168

[root@centos55 tftpboot]# mount -t nfs sol10-u24:/spool/pxeimages/nexenta3.0.1 /mnt/nfs01
[root@centos55 tftpboot]# df -h
   Filesystem          サイズ  使用  残り 使用% マウント位置
   /dev/hda3             2.0T   11G  1.9T   1% /
   /dev/hda1             251M   27M  211M  12% /boot
   tmpfs                 950M     0  950M   0% /dev/shm
   sol10-u24:/spool/pxeimages/nexenta3.0.1
                         3.7T   19G  3.7T   1% /mnt/nfs01

必要ディレクトリの作成
[root@centos55 tftpboot]# mkdir -p /tftpboot/nexenta_os/platform/i86pc
[root@centos55 tftpboot]# mkdir -p /tftpboot/boot/grub

必要ファイル配置
[root@centos55 tftpboot]# cp -Rp /mnt/nfs01/platform/i86pc/kernel /tftpboot/nexenta_os/platform/i86pc
[root@centos55 tftpboot]# cp -Rp /mnt/nfs01/platform/i86pc/kernel /tftpboot/nexenta_os/platform/i86pc
[root@centos55 tftpboot]# cp -Rp /mnt/nfs01/platform/i86pc/miniroot /tftpboot/nexenta_os/platform/i86pc
[root@centos55 tftpboot]# cp -Rp /mnt/nfs01/boot/grub/pxegrub /tftpboot/boot/grub/

grub menuの作成
[root@centos55 tftpboot]# vi /tfptboot/boot/grub/menu.lst
   default 0
   timeout 10
   title NexentaCore PXE Install
   kernel$ /nexenta_os/platform/i86pc/kernel/$ISADIR/unix -B iso_nfs_path=192.168.1.10:/spool/pxeimages/nexenta3.0.1
   module$ /nexenta_os/platform/i86pc/$ISADIR/miniroot


3.2 DHCPサーバの設定

[root@centos55 tmp]# yum install dhcp

まだ起動しない
[root@centos55 tmp]# chkconfig --list |grep dhcp
   dhcpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

*複数インターフェースがあるマシンでは、DHCPが待ち受けるifを指定すること。そうしないと余計なセグメントにDHCPが流れてしまう。

設定サンプルから設定した方が早い。
[root@centos55 tmp]# cp -p /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
[root@centos55 tmp]# vi /etc/dhcp.conf
太字部分がLinuxのPXEインストールと違うところ。
   ddns-update-style interim;
   ignore client-updates;
   use-host-decl-names on;
   option grubmenu code 150 = text;

   subnet 192.168.1.0 netmask 255.255.255.0 {

   # --- default gateway
   option routers                  192.168.1.254;
   option subnet-mask              255.255.255.0;

   option domain-name              "sol-net.jp";
   option domain-name-servers      192.168.1.254;

   option time-offset              -18000; # Eastern Standard Time

   default-lease-time 21600;
   max-lease-time 43200;

   # we want the nameserver to appear at a fixed address
   host nexenta-u27 {
       # TFTPサーバのIPアドレス
       next-server 192.168.1.71;
       # インストール対象のMACアドレス
       hardware ethernet 08:00:27:7f:f6:46;
       # インストール時に一時的に割り当てるIPアドレス
       fixed-address 192.168.1.11;
       # PXEブートするためにTFTPサーバから取得するファイル
       filename "/boot/grub/pxegrub";
       option grubmenu "/boot/grub/menu.lst";
       }
   }

設定のチェック
[root@centos55 etc]# /etc/init.d/dhcpd configtest
   Syntax: OK

起動する。
[root@centos55 etc]# /etc/init.d/dhcpd start
   dhcpd を起動中:                                            [  OK  ]

これでPXEブートをする準備が整った。


4 NexentaのPXEインストール

特に考えることは無く、サーバ起動時にブート順序をネットワークから起動するようにすれば、Nexentaのインストーラーが起動してくる。
インストール時に問い合わせされることは、ほとんどSolarisと一緒。
参考>> Nexenta Core 3.0 RC3 をインストール

Nexentaのインストールはかなり早い。インストールイメージのサイズをみるとわかるけど、インストールされるものがかなり少ない。今回の環境はインストールが始まって5分ほどで終了した。

root@nexenta:~# uname -a
  SunOS nexenta 5.11 NexentaOS_134f i86pc i386 i86pc Solaris

次回はDeDupeの効果を検証してみる。