BIOS, RAID, 遠隔管理チップの設定の自動化の必要性
何百台、何千台のサーバーを管理する場合、サーバーのBIOSやRAID、遠隔管理チップの設定を管理者が1台ずつ設定すると非常に手間がかかります。初期セットアップだけでなく日々の運用や、購入後の利用目的の変更によってハードウェアの設定を変更することがあるため、これらの設定を複数台まとめて自動的に行うことが必要になってきます。
筆者の所属するHPでは、ProLiantサーバーDL、SL、ML、BLシリーズのBIOS、RAIDコントローラー、遠隔管理チップiLO4の設定情報の取得および配布を行うScripting Toolkit for Linux(以下STK)を提供しています。STKを使えば、管理対象サーバーにOSをインストールする前段階において、大量のHP ProLiantサーバーのハードウェア配備の手間を大幅に削減することができます。
実践編第1回の前編では、STKによるハードウェア情報の取得と配布を実現するサーバーをUbuntu Serverで構築する手順を述べます。後編では、Ubuntu Serverを自動インストールするサーバーの構築手順を述べます。
図1:スケールアウト型基盤におけるUbuntu Serverの自動配備のための必要な技術要素(クリックで拡大)
STKの配布に必要なUbuntu Serverのサービスと基本設定
STKを構築する管理サーバーには、Ubuntu Server 12.04.x LTSをインストールし、DHCP、TFTP、NFSサーバーを構築する必要があります。Ubuntu Serverを管理サーバーにインストール後、これらの各種サービスをOS起動時に自動起動させるかどうかの設定を行うため、rc-sysv-confをインストールしておくとよいでしょう。rc-sysv-confは、RHEL/CentOS系のchkconfigに相当します。chkconfigと管理手法が似ているため、chkconfigに慣れているRHEL/CentOSユーザーにお勧めです。
1 | # apt-get install sysv-rc-conf |
Ubuntu ServerにおけるDHCPサーバーの設定
STKは、管理対象サーバーをオンメモリで利用するため、管理対象サーバーをネットワークブートさせる必要があります。ネットワークブートには、管理対象サーバーに搭載されているNICのPXE(Preboot Execution Environment)機能を利用します。PXE機能を使ったサーバーの起動をPXEブートといい、多くのスケールアウト型のクラウド環境で利用されている基礎技術です。管理対象サーバーをPXEブートさせるために必要なサービスにDHCPサービスがあります。
Ubuntu Serverにおいて利用可能なDHCPサービスのパッケージはいくつか存在しますが、今回はisc-dhcp-serverを使用して管理サーバーにDHCPサーバーを構築してみましょう。
1 | # apt-get install isc-dhcp-server |
DHCPサービスを提供するUbuntu ServerのIPアドレスを172.16.12.1/16として、DHCPサーバーの設定を行います。DHCPサービスを提供するNIC(ここではeth0)を指定します。
1 | # vi /etc/default/isc-dhcp-server |
isc-dhcp-serverの設定ファイルdhcpd.confファイルを編集します。以下は、管理対象サーバーにDHCPでIPアドレスを付与し、pxelinux.0ファイルを付与するための設定例です。一般的に、スケールアウト基盤においては、管理対象サーバーのMACアドレスとIPアドレスをDHCPサーバーによって管理しますが、ここでは、MACアドレスの指定による管理は省略しています。実際の本番環境では、MACアドレス等による管理をDHCPサーバーで行うかどうかの検討を行ってください。
01 | # vi /etc/dhcp/dhcpd.conf |
03 | ddns-update-style none; |
04 | default-lease-time 600; |
06 | subnet 172.16.0.0 netmask 255.255.0.0 { |
07 | option routers 172.16.12.1; |
08 | option domain-name "jpn.linux.hp.com"; |
09 | option domain-name-servers 172.16.1.254; |
10 | range 172.16.0.1 172.16.0.254; |
11 | next-server 172.16.12.1; |
12 | filename "pxelinux.0";←管理対象にDHCPで配布するファイル |
serviceコマンドでDHCPサービスを起動します。
1 | # sysv-rc-conf isc-dhcp-server on |
2 | # service isc-dhcp-server start |