Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
コンテンツコンテンツ
仮想化ガイド
  1. 前書き
  2. I 概要
    1. 1 仮想化技術
    2. 2 仮想化シナリオ
    3. 3 Xen 仮想化の紹介
    4. 4 KVM 仮想化の紹介
    5. 5 仮想化ツール
    6. 6 仮想化コンポーネントのインストール
  3. II libvirt を利用した仮想マシンの管理
    1. 7 libvirt デーモン
    2. 8 VM ホストサーバ の準備
    3. 9 ゲストのインストール
    4. 10 基本的な VM ゲスト の管理
    5. 11 接続と認可
    6. 12 高度なストレージ設定
    7. 13 仮想マシンマネージャ を利用した仮想マシンの設定
    8. 14 virsh を利用した仮想マシンの設定
    9. 15 AMD SEV-SNP による仮想マシンのセキュリティ強化
    10. 16 VM ゲスト の移行
    11. 17 Xen から KVM への移行ガイド
  4. III 全ハイパーバイザ共通の機能
    1. 18 ディスクのキャッシュモード
    2. 19 VM ゲスト の時刻設定
    3. 20 libguestfs
    4. 21 QEMU ゲストエージェント
    5. 22 ソフトウエア TPM エミュレータ
    6. 23 VM ゲスト に対するクラッシュダンプの作成
  5. IV Xen を利用した仮想マシンの管理
    1. 24 仮想マシンホストの設定
    2. 25 仮想ネットワーク
    3. 26 仮想環境の管理
    4. 27 Xen 内でのブロックデバイス
    5. 28 仮想化: オプション設定
    6. 29 管理作業
    7. 30 XenStore: ドメイン間で共有される設定データベース
    8. 31 Xen の高可用性仮想化ホストとしての使用
    9. 32 Xen: 準仮想化 (PV) ゲストから完全仮想化 (FV/HVM) ゲストへの変換
  6. V QEMU を利用した仮想マシンの管理
    1. 33 QEMU の概要
    2. 34 KVM VM ホストサーバ の構築
    3. 35 ゲストのインストール
    4. 36 qemu-system-ARCH を利用した仮想マシンの実行
    5. 37 QEMU モニタを利用した仮想マシンの管理
  7. VI トラブルシューティング
    1. 38 内蔵ヘルプとパッケージのドキュメンテーション
    2. 39 システム情報とログの収集
  8. 用語集
  9. A NVIDIA カードに対する GPU パススルー の設定
  10. B GNU ライセンス
ナビゲーション
適用先 openSUSE Leap 15.7

27 Xen 内でのブロックデバイス Edit source

27.1 物理ストレージから仮想ディスクへのマッピング Edit source

ドメインの設定ファイル内にある Xen ドメインのディスク設定は非常に直感的で、下記のように記述します:

disk = [ 'format=raw,vdev=hdc,access=ro,devtype=cdrom,target=/root/image.iso' ]

上記では /root/image.iso というファイルをベースにしたディスク型のブロックデバイスを定義しています。ゲスト内では、このディスクは hdc として表示され、読み込み専用 ( ro ) に設定されています。デバイスの種類は cdrom で、 raw 形式を使用する設定になっています。

下記の設定例は上記と同じ設定ですが、よりシンプルなカンマ区切りの書式を使用しています:

disk = [ '/root/image.iso,raw,hdc,ro,cdrom' ]

同じ行内に複数のディスク定義を設定したい場合は、それぞれをカンマ区切りで指定してください。パラメータを指定しない場合、既定値が指定されているものとみなされます:

disk = [ '/root/image.iso,raw,hdc,ro,cdrom','/dev/vg/guest-volume,,hda','...' ]
パラメータの一覧
target

ソースとなるブロックデバイスやディスクイメージのファイルパスを指定します。

format

イメージファイルの形式を指定します。既定値は raw です。

vdev

ゲスト側での仮想デバイスを指定します。設定できる値には hd[x], xvd[x], sd[x] などがあります。詳しくは /usr/share/doc/packages/xen/misc/vbd-interface.txt (英語) ファイルをお読みください。このパラメータは必須です。

access

ゲスト側でのブロックデバイスを読み込み専用とするか、読み書きできるものとするかを指定します。設定可能な値は ro または r (読み込み専用), rw または w (読み書き可能) から指定します。既定値は devtype=cdrom の場合は ro に、それ以外のデバイスの場合は rw になります。

devtype

仮想デバイスの種類を指定します。設定可能な値は cdrom です。

backendtype

使用するバックエンド実装を指定します。設定可能な値は phy , tap , qdisk のいずれかです。通常は、バックエンドの種類を自動設定するため、このオプションを指定する必要はありません。

script

target が通常のホストパスではなく、実行可能なプログラムで解釈される情報である場合に指定します。ここで指定したスクリプトファイルが絶対パスではない場合、 /etc/xen/scripts 内にあるものとして扱われます。これらのスクリプトは通常、 block-<スクリプト名> と呼ばれます。

仮想ディスクの指定方法に関する詳細は、 /usr/share/doc/packages/xen/misc/xl-disk-configuration.txt (英語) をお読みください。

27.2 ネットワークストレージから仮想ディスクへのマッピング Edit source

ローカルのディスクイメージをマッピングする (詳しくは 27.1項 「物理ストレージから仮想ディスクへのマッピング」 をお読みください) 場合と同様に、ネットワークディスクを仮想ディスクとしてマッピングすることもできます。

下記の例では、複数の Ceph モニタと cephx 認証が有効化された RBD (RADOS Block Device) ディスクに対して、マッピングを設定しています:

disk = [ 'vdev=hdc, backendtype=qdisk, \
target=rbd:libvirt-pool/new-libvirt-image:\
id=libvirt:key=AQDsPWtW8JoXJBAAyLPQe7MhCC+JPkI3QuhaAw==:auth_supported=cephx;none:\
mon_host=137.65.135.205\\:6789;137.65.135.206\\:6789;137.65.135.207\\:6789' ]

NBD (Network Block Device) のディスクマッピング例は下記のとおりです:

disk = [ 'vdev=hdc, backendtype=qdisk, target=nbd:151.155.144.82:5555' ]

27.3 ファイルとして存在する仮想ディスクとループバックデバイス Edit source

仮想マシンが動作している場合、ファイルとして存在する仮想ディスクは、ホスト内でループバックデバイスを使用します。既定では、ホスト側では 64 個までのループバックデバイスを使用することができます。

ホスト側でそれ以上のファイルベースの仮想ディスクを使用する場合は、ホスト側の /etc/modprobe.conf.local ファイル内に下記のオプションを追加して、同時に利用可能なループバック数を増やしておく必要があります。

options loop max_loop=x

ここで、 x には使用したいループバックデバイスの最大数を指定します。

設定した内容は、モジュールの再読み込み時に反映されます。

ヒント
ヒント

rmmod loop および modprobe loop を実行することで、モジュールの読み込み解除と再読み込みを行うことができます。なお、 rmmod がうまく動作しない場合、既存のループバックデバイスの使用を全て解除するか、もしくはコンピュータを再起動してください。

27.4 ブロックデバイスのサイズ変更 Edit source

VM ゲスト システムに新しいブロックデバイスを追加することもできますが、場合によっては既存のブロックデバイスのサイズを増やしたほうが都合のよい場合があります。 VM ゲスト の作成の際にそのような拡張を考慮しておきたい場合は、下記のような設定を行っておくことをお勧めします:

  • サイズを増やすことのできるブロックデバイスを使用するようにしてください。具体的には LVM デバイスやファイルベースのイメージがそれにあたります。

  • VM ゲスト 内部ではデバイスのパーティションを作成せずに使用するものとし、メインとなるデバイスを直接マウントしてお使いください。たとえば /dev/xvdb に対してパーティションを作成する代わりに、 /dev/xvdb を直接マウントしてください。

  • サイズを変更することのできるファイルシステムを使用してください。たとえば ext3 などのファイルシステムでは、サイズを変更するためにいくつかの機能を無効化しなければならないこともあります。また、オンラインでマウントしたままサイズを変更することができるファイルシステムとして、 XFS があります。 xfs_growfs コマンドを使用することで、ブロックデバイス側のサイズ変更を行ったあと、ファイルシステム側のサイズ変更を行うことができます。 XFS の詳細について、詳しくは man 8 xfs_growfs をお読みください。

VM ゲスト に対して割り当てられている LVM デバイスをサイズ変更する場合、新しいサイズは自動的に VM ゲスト に伝達されます。新しいブロックデバイスのサイズを知らせるために必要なアクションはありません。

ファイルシステムのイメージを使用する場合、ループバックデバイスを使用してイメージファイルをゲストに割り当てます。イメージのサイズ変更と VM ゲスト 側でのサイズ情報の伝達について、詳しくは 29.2項 「スパースイメージファイルとディスク領域」 をお読みください。

27.5 高度なストレージ管理向けのスクリプト Edit source

ソフトウエア RAID セット上に構築されてた LVM 環境や LVM 環境上に構築されたソフトウエア RAID セットなど、 dmmd ( device mapper—multi disk ) で提供されるディスク環境のような高度なストレージ環境の管理を支援するため、いくつかのスクリプトが提供されています。これらのスクリプトは xen-tools パッケージ内に含まれていて、インストール後には /etc/xen/scripts ディレクトリ内に存在します:

  • block-dmmd

  • block-drbd-probe

  • block-npiv

これらのスクリプトを使用すると、外部のコマンドがゲストに対してブロックデバイスを提供する前に、そのブロックデバイスに対して何らかの処理や一連のアクションを実行することができるようになります。

これらのスクリプトは従来、 script= のディスク設定書式を利用して xllibxl で使用できていたものです。これらはディスクの <source> 要素内でブロックスクリプトのベース名を指定することで、 libvirt でも使用できるようになっています。たとえば下記のようになります:

<source dev='dmmd:md;/dev/md0;lvm;/dev/vgxen/lv-vm01'/>
このページを印刷