Hatena::ブログ(Diary)

ローリングコンバットピッチ!なう! このページをアンテナに追加

2018-06-05 色違いオムナイト2体捕獲

[][]CentOS7.5をXenのPV(準仮想化)モードで起動する 22:19 CentOS7.5をXenのPV(準仮想化)モードで起動するを含むブックマーク

4月にCentOS7.5がリリースされました。

弊ブログの以下の記事に書きましたが、Redhat7.4及びCentOS7.4のカーネルはXenの準仮想化に対応しておらず、準仮想化モードでは起動することができませんでした。

「CentOS7.4がXenのPVモードで起動失敗する問題への対処」

http://d.hatena.ne.jp/RC30-popo/20180328/1522241076

CentOS7.4の場合はそれでもCentOS plusのリポジトリで公開されている修正カーネルを適用することで準仮想化で起動可能でしたが、カーネルが更新出来ない等、制約がありました。

CentOS7.5でこれがどうなったか、新規に準仮想化モードのDomUとしてインストールしてみました。

結論から言うと、特に問題無くインストール・起動できました。

  1. 下記のMinimal ISOイメージを入手
    http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
  2. 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
    
  3. インストール用の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"
    
  4. インストール用のRAWイメージファイルを作成
    # truncate -s 10G /home/foo/xen-work/centos75.img
    
  5. インストーラをXenのPVモードで起動
    # sudo xl create -c centos75-inst.cfg
    
    これでインストーラが起動するので、後はインストーラの指示に従って作業すればインストールは完了します。インストール完了したら、rebootしますがこのままではまたインストーラが起動するので
    # sudo xl destroy centos75
    
    で起動中のDomUを停止・削除します。
  6. 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']
    
  7. イメージファイルをqcow2フォーマットに変換
    # qemu-img convert -f raw -O qcow2 centos75.img centos75.qcow2
    
  8. PvGrubイメージを作成
    centos75.cfg内に記載した'grub-x86_64-xen-centos7.bin'はGNU grub2をXenのPV(準仮想化)対応にしたものです。Xenで標準でインストールされるpygrubではgrub2用のメニューファイルを扱えないため、これを自力でビルドでする必要があります。 基本的な説明は https://wiki.xenproject.org/wiki/PvGrub2 に記載されていますが、これにパッチをあてる作業が更に必要になります。 弊ブログの記事 「Xen+Dom0:Ubuntu+DomU:CentOS7」 http://d.hatena.ne.jp/RC30-popo/20180322/1521723727 にパッチあてについて情報を載せているので参照してください。 (あまり懇切丁寧には書いていません、ご容赦を)
  9. 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モード運用できています。


[改訂新版]プロのためのLinuxシステム構築・運用技術 (Software Design plus)
中井 悦司
技術評論社
売り上げランキング: 66,233

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド
有限会社ナレッジデザイン 大竹 龍史 市来 秀男 山本 道子 山崎 佳子
SBクリエイティブ
売り上げランキング: 13,127

トラックバック - http://d.hatena.ne.jp/RC30-popo/20180605/1528204799