CentOS7.5をXenのPV(準仮想化)モードで起動する
4月にCentOS7.5がリリースされました。
弊ブログの以下の記事に書きましたが、Redhat7.4及びCentOS7.4のカーネルはXenの準仮想化に対応しておらず、準仮想化モードでは起動することができませんでした。
「CentOS7.4がXenのPVモードで起動失敗する問題への対処」
rc30-popo.hatenablog.com
CentOS7.4の場合はそれでもCentOS plusのリポジトリで公開されている修正カーネルを適用することで準仮想化で起動可能でしたが、カーネルが更新出来ない等、制約がありました。
CentOS7.5でこれがどうなったか、新規に準仮想化モードのDomUとしてインストールしてみました。
結論から言うと、特に問題無くインストール・起動できました。
- 下記のMinimal ISOイメージを入手
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
- ISOイメージをマウントしてインストーラ起動用のvmlinuzとinitrd.imgを取り出す
/home/foo/xen-workの下で作業するとします。# mkdir centos75 # sudo mount -o loop -t iso9660 CentOS-7-x86_64-Minimal-1804.iso /mnt # cp /mnt/isolinux/vmlinuz centos75/ # cp /mnt/isolinux/initrd.img centos75/ # sudo umount /tmp
- インストール用のxl.cfgを作成
ファイル名をcentos75-inst.cfgで作成します。内容を以下の通り。(各ファイルのパス名は適当に調整してください)name = "centos7.5" kernel = "/home/foo/xen-work/centos75/vmlinuz" ramdisk = "/home/foo/xen-work/centos75/initrd.img" memory = 512 vcpu = 1 disk = [ 'file:/home/foo/xen-work/centos75.img,xvda,w','file:/home/foo/xen-work/CentOS-7-x86_64-Minimal-1804.iso,xvdb:cdrom,r' ] vif = [ 'mac=00:16:3e:00:00:05,bridge=xenbr0'] extra="inst.repo=cdrom:xvdb"
- インストール用のRAWイメージファイルを作成
# truncate -s 10G /home/foo/xen-work/centos75.img
- インストーラをXenのPVモードで起動
# sudo xl create -c centos75-inst.cfg
これでインストーラが起動するので、後はインストーラの指示に従って作業すればインストールは完了します。インストール完了したら、rebootしますがこのままではまたインストーラが起動するので
# sudo xl destroy centos75
で起動中のDomUを停止・削除します。
- OS起動用のxl.cfgを作成
ファイル名をcentos75.cfgとすると、以下の様な内容で作成します。
ディスクの節約のため、イメージファイルをqcow2フォーマットに変換する前提で記載しています。name = "centos75" # PvGrub2をBootloaderとして使用 kernel = "/home/foo/xen-work/grub-x86_64-xen-centos7.bin" memory = 512 vcpu = 1 disk = ['tap:qcow2:/home/foo/xen-work/centos75.qcow2,xvda,w'] # MACは適当に同じセグメント内の他のDomUやマシンとぶつからないように vif = [ 'mac=00:16:3e:00:00:05,bridge=xenbr0']
- イメージファイルをqcow2フォーマットに変換
# qemu-img convert -f raw -O qcow2 centos75.img centos75.qcow2
- PvGrubイメージを作成
centos75.cfg内に記載した'grub-x86_64-xen-centos7.bin'はGNU grub2をXenのPV(準仮想化)対応にしたものです。Xenで標準でインストールされるpygrubではgrub2用のメニューファイルを扱えないため、これを自力でビルドでする必要があります。
基本的な説明は
https://wiki.xenproject.org/wiki/PvGrub2
に記載されていますが、これにパッチをあてる作業が更に必要になります。
弊ブログの記事
rc30-popo.hatenablog.comにパッチあてについて情報を載せているので参照してください。
(あまり懇切丁寧には書いていません、ご容赦を)
- CentOS7.5起動
下記でCentOS7.5をPV(準仮想化)モードで起動します。# sudo xl create -c centos75.cfg
Centos plusリポジトリのカーネルでPVモード運用していたCentOS7.4環境ですが、/etc/yum.confのexclude=kernel*を削除し、yum updateを実施することでCentOS7.5のカーネルに更新され、7.5にアップデートされました。このカーネルで問題なくPVモード運用できています。