EC2: CC2用Scientific Linux6.2のAMIを作成する
cc1, cc2, cg1 といったクラスタコンピュートインスタンス( Culster Compute) 用のLinux AMIは、その他のインスタンスタイプ用の準仮想化(Para-Virtualization, PV) AMIではなく、完全仮想化(HVM) AMIとなっており、そのままでは使えない。
フォーラムにCentOS6.x のPV用AMIを、HVM用AMIに変換する手順が載っていた。
AWS Developer Forums: CentOS 6.* PV/HVM AMI how-to ...
ちなみに、AWS公式ではないが、Scientific Linux6.2のPV用AMIが公開されている。
AMI: Scientific Linux 6.2 x86_64
では、このAMIを、HVM用に変換して自分用のHVM Scientific Linux6.2 AMIを作ってみる。(すべての情報ソースが非公式なので、あくまでも自己責任で!)
以下、手順
===
US-EASTで上記SL6.2 AMIから t1.microを起動し、起動完了後すぐにstop、ついているboot用EBSボリュームをdetachする。以後、このインスタンスを SL-PVと呼ぶ
US-EASTでクラスタコンピュート用Amazon Linux AMIを使ってCC2を起動。(注:上記t1.microと同じゾーンを指定すること)。以後、このインスタンスをAL-HVMと呼ぶ。
SL-PVからdetachしたEBSボリュームを、AL-HVMの /dev/sdfにattach
AL-HVM内で以下の作業を行う
$ sudo su - # mkdir /mnt/sl6 # mount /dev/sdf1 /mnt/sl6 # mount -o bind /dev/ /mnt/sl6/dev # chroot /mnt/sl6 # grub grub> root (hd1,0) grub> setup (hd1) grub> quit # vi /etc/grub.conf # cat /etc/grub.conf default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Scientific Linux (2.6.32-279.5.1.el6.x86_64) root (hd0,0) kernel /boot/vmlinuz-2.6.32-279.5.1.el6.x86_64 ro root=LABEL=/ LANG=en_US.UTF-8 console=ttyS0 KEYTABLE=us crashkernel=auto initrd /boot/initramfs-2.6.32-279.5.1.el6.x86_64.img # vi /etc/fstab # cat /etc/fstab LABEL=/ / ext4 defaults,relatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
AL-HVMをstop
AL-HVMにattachされている /dev/sda1 のボリューム( ボリューム1)と /dev/sdf のボリューム(ボリューム2)をdetach
AL-HVMに、 ボリューム2を /dev/sda1 にattach
AL-HVMをstart
無事に起動すれば、HVMなScientific Linuxとして AL-HVMインスタンスが起動する。
ec2-userでsshログインして自分用のAMIを作成するための準備をする
# rm ~/.ssh/authorized-keys # history -c # exit $ rm ~/.ssh/authorized-keys $ sudo rm -rf /var/log/* $ history -c
AMIを作成後、作成したAMIで新たにCC2が起動することを確認する。