Hyper-Vの仮想環境にScientific Linux 6.1をインストールする
仕事の話なので細かい経緯は省略*1しますが、
WindowsServerのHyper-V上で、
Scientific Linux 6.1環境を複数動かすことになりまして
インストールを試すだけなら、普通にISOを突っ込んで起動すれば終わりなのですが、
実運用しようとすると、Hyper-Vと連携するモジュールが必須になります
- Linux IS v3.1
- 細かい情報
今回はこれを実際に適用した手順+αのメモを...φ(・ω・`)
ちなみに、以前サーバを選定するにあたり、
Hyper-VにCentOS5.xを入れる手順も試していますが、
圧倒的に6系の方が楽になってます*2
Scientific Linux 6.1のインストール
ISOファイルを用意しておいて、マウントするのが楽です
時間も短縮できます
ただし、WindowsServerをリモートで操作している場合、
SL6.1のインストーラーでGUIを使おうとしても、
マウスをキャプチャしてくれません
かといって、textインストールだとパッケージ構成が選べず、
初期段階ではネットワークが使えない=yumが使えないため、
GUIをキーボード操作するのをおすすめします
(tab/tab+shift/space/カーソル等)
同様の理由で、ネットワークの設定がグレーアウトしていますが、
Linux IS適用後にいじるので問題ないです
Linux IS v3.1のインストール
MSからダウンロードしたファイルはISO形式なので、
それをマウントし、中に入っているrpmをインストールします
# mount /dev/cdrom /media # cd /media/x86_64 # rpm -ivh kmod-microsoft-hyper-v-rhel6-60.1.x86_64.rpm # rpm -ivh microsoft-hyper-v-rhel6-60.1.x86_64.rpm
後はrebootすればいいのですが、
これを組み込んだ後はcdromのmountができなくなりますΣ(・ω・ノ)ノ
Linux IS v3.1のPDFファイルや、前述のBlogにもありますが、
もしcdromを使う必要がある場合は、
デバイスドライバの組み込みが必要です
insmod /lib/modules/$(uname -r)/kernel/drivers/ata/ata_piix.ko
まあ、ネットワークさえ動いていれば、普通はwgetとかするので、
あまり気にならないと思いますが
ネットワーク初期設定(強引な方法)
デバイスの組み込みができているので、
「ifup eth0」といきたいところですが、
なぜかうまくいきませんΣ(゚Д゚)ガーン
このあたりは先ほどのBlogに細かく書いてありますが、
以下の手順で一応動くようになります
- ifconfig eth0 up
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 存在しないので新規作成になる
DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet HWADDR=XX:XX:XX:XX:XX:XX IPV6INET=no
- ifup eth0
- エラーが出るけど無視する
- system-config-netwok
- eth0デバイス設定を開いて「Save」する
- reboot
後はあるべき設定に書き直すだけです*4
yum周りの設定
これでHyper-V固有の問題は解決し、
後はSSH鍵やらsudoやら好きに設定すればいいのですが、
その前にSL特有のyum問題を解決しておきましょう
SLのyumはデフォルトだと公式のrepoのみを参照し、
非常に遅いため、mirrorの設定が必須です
- vi /etc/yum.repos.d/sl.repo
- mirrorlistのコメントを外す(sl/sl-securityの二箇所)
- yum install yum-plugin-fastestmirror
- yum clean all
- 念のためやっておくけど、たぶん不要
- yum update
- fastestmirrorを選択してupdateが開始される
- kernelもupdateしちゃってOK
このあたりのポリシーはCentOSとだいぶ違っていて、
6.0 -> 6.1のupdateも単純にyumを実行しただけではできません
研究開発環境用OSということで、
このあたりのポリシーを厳しくしているんだと思いますが、
一方で有用なリポジトリがyumから入れられるのは便利です
環境のコピーとネットワークの再設定
本番環境では複数の仮想マシンを同時に起動させるため、
ある程度構築が終わった段階で環境そのものをコピーし、
ネットワーク周りだけ修正して動くといいな・・・と思いますよね(´・ω・)?
というわけで、Linux ISまで適用した仮想HDDファイル(VHDファイル)をコピーし、
新しい仮想マシンにマウントしてみたのですが、
起動直後はやはりネットワーク周りがおかしくなってました
仮想NICのMACアドレスが変わり、
元々のeth0と違うデバイスとして認識されたため、
eth1として定義されています
なので、ifcfg-eth1を書いて「ifup eth1」すればいいのですが、
使うあてのないeth0が残ってるのが微妙に気持ち悪いなと(´-ω-)
気にしなければそれまでですが、
ついでなのでethをどこで定義しているのか調べてみました
/etc/udev/rules.d/70-persistent-net.rules
ここにeth0/1といったデバイスが定義されているので、
必要な方の設定だけ残し、eth0に書きかえれば、
新しいNICをeth0として扱うことができます
まあ、マスター環境を一つ作って、そこからVHDコピーする運用ならば、
結果的に全ての環境でeth1を使うことになるので、
あまり神経質にならなくてもいいと思いますが、ついでなので・・・