2006年04月18日

ディスクレスシステムの応用 〜 Linuxのインストール

はてなブックマークに登録

ディスク障害を避けるために作り始めたディスクレスシステムですが、他にもいろいろな使い道があります。特にサーバ増設時の初期インストール作業において、絶大な威力を発揮しています。
「サーバ増設時の初期インストール」というと、ディストリビューションのCDからインストーラを起動し、必要なパッケージを組み込み、設定ファイルを書き換える・・・・という流れを思い浮かべる方が多いのではないでしょうか。

たしかにそれでも良いとは思いますが、DSASのようなクラスタシステムでは、10台20台の単位でサーバが一気に追加されます。それらに対してまじめにインストーラを使っていると、時間と手間ばかりかかって仕方がありません。また、インストール後の設定作業も繁雑になりがちで、動作チェックと設定確認に神経をすり減らしながらストレスをため込む日々が待ちかまえています。やはり、面倒な作業はできるだけ手を抜きたいものです。

OSのインストール」というと、世間一般には何か難しそうな印象を持たれる事が多かったりしますが、誤解を恐れずに言わせてもらうと 「必要なファイル一式をファイルシステムに配置するだけ」 でインストールは完了です。(IPLはどうするん?!と思ったあなたは素敵です)

・・・まあ、細かい話はとりあえず置いておいておくとして・・・

要は「インストーラ」とは、必要なファイルを選択したり、パーティション切ってくれたりブートローダの設定をしてくれる、単なる「ユーザインターフェイス」にしか過ぎないわけで、「インストール作業」とは「ファイルシステム」を作って「必要なファイル一式」を展開することに他なりません。

「ファイルシステム」はfdiskmkfsで作ることができますし、「必要なファイル一式」はすでに他のサーバ上にあったりします。当然ながら動作確認も済んでいます(笑
従って、増設したサーバを適当にディスクレスブートし、以下のようなコマンドを叩くだけでインストールは完了します。(DSASでは、実際にこのような手順でサーバ増設をしています)

# fdisk /dev/hda
# mkfs.ext2 /dev/hda1
# mkswap /dev/hda2
# mkfs.reiserfs /dev/hda3
# mkdir /mnt/KLab/
# mount /dev/hda3 /mnt/KLab/
# mkdir /mnt/KLab/boot
# mount /dev/hda1 /mnt/KLab/boot
# rsync -av --exclude-from=exclude.list master_host:/ /mnt/KLab/
# chroot /mnt/KLab/ "/sbin/grub-install /dev/hda"
# umount /mnt/KLab/boot
# umount /mnt/KLab
# sync


※exclude.list には /proc/* や /sys/* などの転送してはいけないファイルを記述しておきます

本来は、rsync後に/etc/hostnameを書き換えたり/etc/network/interfacesを書き換えたりしなければいけないと思いますが、DSASではIPMIを使っているので、その必要すらありません。

以前は、KNOPPIXのようなCDブート可能なディストリビューションを利用して同様な作業を行っていましたが、「CDの枚数分しか同時に作業できない」とか「現地で作業しなければならない」という制約(?)がありました。

今ではデータセンタでのサーバの設置作業が完了したら、そのまま事務所に戻ります。
そして、気が向いたとき・・・じゃない、時間が空いたときに、リモートで作業を続けます。

 1) IPMIで電源ON & BIOS設定変更
 2) PXEブート
 3) 上記コマンドを実行(パーティーションの作成とファイルの展開)
 4) 再起動

自分で言うのもなんですが、えらく便利です、これ(笑
IPMIを導入してディスクレスシステムを手軽に利用できる環境を整えた事によって、今まで面倒だった作業が一気に楽になりました。この仕組みは、DSASだけではなく、他の用途にも利用できそうな気がします。

例えば、社内の業務用PCの初期化などに使えないでしょうか。
Windowsの場合はLinuxのように「稼働中のマシンからrsyncで展開」という技は使えないので多少の工夫は必要になりますが、PCのリカバリイメージをサーバに置いておき、ディスクレスブートしてイメージをディスクに書き込むことで、簡単に工場出荷時の状態に戻せるような仕組みができるならば、それだけでも利用価値はあるのかもしれませんね。
klab_gijutsu2 at 08:21│Comments(0)TrackBack(0)

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント