[実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(前編)

2014年3月12日(水)
古賀 政純

Ubuntu Server におけるTFTPサーバーの設定

管理対象サーバーへブートイメージを転送するため、TFTPサーバーを構築します。Ubuntu Serverで利用可能なTFTPサーバーのパッケージはいくつか存在しますが、今回はtftpd-hpaパッケージを使用します。

# apt-get install tftpd-hpa

Ubuntu Server 12.04.xのtftpd-hpaの設定ファイル/etc/default/tftpd-hpa内の「TFTP_DIRECTORY=」行に、管理対象サーバー群へ提供するためのディレクトリ/tftpbootを指定します。

# vi /etc/default/tftpd-hpa
...
TFTP_DIRECTORY="/tftpboot"
...

dhcpd.confファイル内のfilenameの行に「"pxelinux.0";」を指定し、tftp-hpaファイル内のTFTP_DIRECTORYに「/tftpboot」を指定しているため、管理サーバーの/tftpbootディレクトリにpxelinux.0ファイルを配置する必要があります。上記設定ファイルを記述したら、TFTPサービスを起動します。

# sysv-rc-conf tftpd-hpa on
# service tftpd-hpa restart

Ubuntu ServerにおけるNFSサーバーの設定

BIOS、RAID、遠隔管理チップの設定情報を取得するには、管理対象サーバーから管理サーバーにNFSマウントを行いますので、管理サーバーにNFSサーバーを構築します。NFSサーバー上にSTKを配備するためのディレクトリ/nfsrootを作成し、/nfsrootをNFSクライアントに提供できるように、NFSサーバーの/etc/exportsを記述します。

# apt-get install nfs-kernel-server
# mkdir -p /nfsroot
# vi /etc/exports
/nfsroot *(rw,no_root_squash) ←NFS提供ディレクトリと権限を記述

テスト利用の場合には、上記exportsファイルにおいて全てのホストにNFSサービスを提供するように記述しても構いませんが、実際の本番環境のスケールアウト型システムでは、マルチテナント利用やセキュリティ要件を考慮し、NFSサービスを提供するIPアドレスに範囲を設ける必要がありますので注意してください。exportsファイルを記述したら、NFSの関連サービスを起動し、/nfsrootディレクトリがNFSサービスとして提供されているかをshowmountコマンドで確認します。

# service nfs-kernel-server start
# sysv-rc-conf nfs-kernel-server on
# showmount -e localhost
Export list for localhost:
/nfsroot *

Scripting Toolkit for LinuxをUbuntu Serverに配備する

近年、スケールアウト型システムでは、システムインテグレーターや顧客側でOSだけでなく、ハードウェアの自動化のためのサーバー環境を整備するケースが増えて来ています。これを実現するためのツールの一つとしてScripting Toolkit for Linux (STK)が存在します。STKは、ProLiantサーバーのBIOS、RAID、遠隔管理チップの設定の取得や配布を可能にするコマンド類をツールキットとしてまとめたものです。

一般的に、ハードウェアベンダーのBIOSやRAIDコントローラー、サーバーのマザーボードに搭載された遠隔管理チップの設定には、ベンダーが提供する設定ユーティリティが提供されていますが、HPでは、設定ユーティリティを集めたコマンドラインベースのツールキットを無償で提供していますので、スクリプトやcron等による自動化、ユーザー独自の管理ツールへの組み込み等が可能です。

他にも、VMwareやHyper-V等を組み込んだプライベートクラウド基盤向けのアプライアンス製品では、OSを配備する前段階のハードウェア(サーバー、ストレージ、ネットワーク等)の設定の自動化をベンダー提供のアプライアンス向けの管理ツールを使って行うように整備されています。

一方、Linux系のスケールアウト型クラウド基盤向けにもベンダー提供の管理ツールが整備されていますが、BIOS、RAID、管理チップに限定すれば、STKを使うことでハードウェア設定の自動化を実現することができます。以下では、Ubuntu Server上にSTKを配備する手順をご紹介します。

STKのキット「hp-scripting-toolkit-linux-9.50.tar.gz」はHPのWebサイトから入手可能です。保守サポートはありませんが、無償で利用することができます。STKをNFSサーバーに展開し、/nfsrootディレクトリにコピーします。

# tar xzvf hp-scripting-toolkit-linux-9.50.tar.gz -C /tmp/
# cp -a /tmp/hp-scripting-toolkit-linux-9.50/* /nfsroot/

管理対象サーバーがPXEブートするのに必要なファイルvmlinuz、initrd.img、pxelinux.0は、STKに含まれています。これらのファイルをUbuntu ServerのTFTPサービスを提供するディレクトリに配置します。

# mkdir -p /tftpboot/stk950
# cd /nfsroot/boot_files/
# cp -a vmlinuz initrd.img /tftpboot/stk950/
# cp -a pxelinux.0 /tftpboot/

次に、管理対象サーバーのPXEブート後にSTKがロードされるために必要な設定をdefaultファイルに記述します。NFSサーバーの/tftpboot/stk950ディレクトリに配置したvmlinuzファイルとinitrd.imgファイルを参照できるように、kernel行とappend行に相対パスで記述します。

# mkdir -p /tftpboot/pxelinux.cfg
# vi /tftpboot/pxelinux.cfg/default
default  stk950cap ←PXEブート後にデフォルトで利用されるラベル名を記述
#default  stk950dep ←先頭に#を入れてコメントアウトにしておく
prompt  1
timeout 300
label stk950cap ←default行で指定したラベル名を記述
kernel stk950/vmlinuz ←STKで提供されているvmlinuzを指定
append initrd=stk950/initrd.img root=/dev/ram0 rw ramdisk_size=475844 ide=nodma ide=noraid pnpbios=off media=net numa=off iso1=nfs://172.16.12.1/nfsroot sstk_conf=toolkit.conf sstk_script=/capall.sh ←実際には1行で記述
  
label stk950dep ←default行で指定したラベル名を記述
kernel stk950/vmlinuz ←STKで提供されているvmlinuzを指定
append initrd=stk950/initrd.img root=/dev/ram0 rw ramdisk_size=475844 ide=nodma ide=noraid pnpbios=off media=net numa=off iso1=nfs://172.16.12.1/nfsroot sstk_conf=toolkit.conf sstk_script=/depall.sh ←実際には1行で記述

「iso1=nfs://172.16.12.1/nfsroot」では、NFSサーバーのIPアドレスを指定します。capall.shとdepall.shというスクリプトが記載されていますが、これは、STKをロードするためのバッチ・スクリプトです。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています