仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

XenServerにローカルISOストレージリポジトリを追加する3つの方法

はじめに

以前、Citrixが有料サポートを提供するXenアプライアンス「XenServer」についてご紹介しました。XenCenterによるリモート管理をはじめ、実用的な機能が数多く搭載されており、総じて洗練された製品です。ただし価格帯はエンタープライズ向けで、導入できるのは資金力のある企業が中心となります。

XenServerには、いわば「困った仕様」があります。それは、XenCenterのGUIからローカルストレージリポジトリ(ローカルディスク)を追加できないという点です。冗長性やパフォーマンスの観点から、仮想マシンをローカルディスクに置くべきではないのは確かですが、「使いたいのに使えない」という制約は理不尽に感じられます。そこで今回は、この制限を解除する方法を解説します。

目的

今回達成したいのは、ローカルディスク上にローカルストレージリポジトリを構成することです。この領域は、メインのLVMストレージやroot用に確保された小さな標準共有と、同じサーバーリソースを共有することになります。具体的な手順を見ていきましょう。

実現方法は2〜3通りあります。ここではすべて紹介します。なお、いずれの方法もやや強引で複雑であり、コマンドライン操作が必須です。おそらく「面倒だ」と感じ、ローカルストレージを自由に制御できる独自のXenやKVM環境の方を好むかもしれません。それでも必要な方のために、手順を残しておきます。

方法1:ローカルディレクトリをマウントする(最も簡単)

これは最もシンプルな方法です。たとえばscpコマンドなどでISOイメージを配置したローカルディレクトリ(/vm/isoなど)がある場合、それをXenCenter上で表示させたいはずです。しかし前述のとおり、GUIからローカルストレージを追加することはできません。

そこで、次のコマンドを実行します:

xe sr-create name-label=<NAME> type=iso
device-config:legacy_mode=true
device-config:location=<ISODIR> content-type=iso

実際の値を当てはめると、次のようになります:

xe sr-create name-label=Local type=iso
device-config:legacy_mode=true
device-config:location=/vm/iso content-type=iso

コマンドが成功すると、作成されたストレージリポジトリのUUIDが返されます。なお、このコマンドは何度でも実行でき、実行するたびに新しいストレージリポジトリが作成され、GUI上に個別のエントリとして表示される点に注意してください。

xe sr-create name-label=Local type=iso
device-config:legacy_mode=true
device-config:location=/vm/iso content-type=iso
3476e496-185f-9eba-0f89-bb822db31ebd

この操作は、SSHで接続した後のローカルシェルから行えます。

その後、VMをインストールしようとすると、「Local」が一覧に表示されているはずです。同じコマンドを2回実行すると、同一のエントリが2つ表示されます。バグかどうかは不明ですが、こういう仕様なので、混乱しないよう注意しましょう。

方法2:LVMを操作する(非推奨)

こちらははるかに難易度の高い、複雑な構成方法です。仮想マシンの構成情報やディスクを格納するために使われている、ローカルディスク全体にまたがるLVMストレージを直接扱います。

やりたいことは、ディスク上に新しいLVMを作成し、それをOSイメージなどの保存用ストレージとして追加することです。そのためにはLVMコマンドを使用する必要があります。幸いLVMは柔軟で、システムを再起動することなく、リサイズ、割り当て、ボリュームグループやボリュームの追加・削除といった大幅な変更をオンラインで行えます。

詳細な手順はCitrixフォーラムの投稿で丁寧に解説されています(詳しくは後述の「参考資料」セクションをご覧ください)。大まかな流れとしては、まず未割り当てのディスク領域を見つけて新しいボリュームグループを作成します。あるいは既存のボリュームグループを縮小し、空いた領域から新たなグループを作成してもよいでしょう。その後、ボリュームを作成し、フォーマットし、最後にマウントして使用可能にします。

この作業の様子を収めたスクリーンショットがこちらです。

方法3:既定のISOディレクトリを利用する

/opt/xensource/packages/iso ディレクトリをISOイメージの保存先として使うこともできます。ただしこの領域はやや小さく、少数のファイルしか収容できない可能性があります。裏技として、このディレクトリを別のディスクやパーティションへのシンボリックリンクに置き換える手もあります。

新しいディスクの追加手順は、最初の方法とほぼ同じです。ディスクを追加し、認識されていることを確認したら、パーティションテーブルを作成してフォーマットします。次に、システム内の任意のマウントポイントにマウントします。最後に、新しいストレージリポジトリを作成します:

xe sr-create type=iso device-config:legacy_mode=true
device-config:location=/path/to/mntpoint

そして、利用可能なリポジトリの一覧を更新します:

xe sr-scan uuid=<SR UUID>

以上で完了です。

参考資料

詳細については、以下のフォーラム投稿が役立ちます:

https://forums.citrix.com/message.jspa?messageID=1399366
https://forums.citrix.com/thread.jspa?threadID=257054

さらに余談ですが、LinuxのSamba共有を使ってWindows CIFSをエミュレートする方法もあります。元記事はスペイン語ですが、説明文と画像だけで内容は十分伝わるため、翻訳は必要ありません。おまけとして、ぜひ試してみてください。

まとめ

このような形でストレージリポジトリを追加するのは、KVMのストレージ管理を使った経験がある方や、コマンドラインでXenを運用したことのある方にとっては、非常に回りくどく感じられるでしょう。LVMは高い運用柔軟性をもたらす一方、多くのユーザーにとって管理のハードルを上げてしまいます。さらに、ファイルシステムが透過的でないため、特殊なカスタム構成が必要になったときに問題が生じます。もし新しいタイプのリポジトリが登場したらどうなるでしょうか。標準的なLinuxであれば、新しいファイルシステムを任意の場所にマウントするだけで解決です。必要なプロトコルやドライバーはシステム側が自動的に判断してくれます。一方XenServerでは、この違いゆえに、単純な作業が大きなプロジェクトになってしまうのです。

もちろん、仮想マシンをローカルストレージに置くのは決して良い考えではありません。バックアップやリカバリ、データセンター全体でのアクセス性が悪化し、スケールアウト時には容量やパフォーマンスの面でも不利になります。とはいえ、この事実はXenServerの設計思想を浮き彫りにしています。本チュートリアルがあれば、あなたの作業はいくらか楽になるはずです。少なくとも、リモートアクセスとコマンドラインの使い方を学び、LVM管理にも少し触れることができました。きっと役立つでしょう。

他にアイデアやご要望があれば、お気軽にお知らせください。

それでは、また。

  1. Windows 11でローカルユーザーアカウントを設定する方法|Microsoftアカウント強制を回避する3つの手法

    オンラインアカウントに反対だと誤解されがちですが、まったくそうではありません。スマートフォンのように、オンライン機能が利用形態の本質的な一部となっている場面では、オンラインアカウントは理にかなっています。私が反対しているのは、それ自体のためだけに行われる「不必要な」オンラインアカウントの強制です。その典型例こそが、Windows 10 Home、そして今やWindows 11なのです。これまでにWindows 11 Devビルドのレビューを行い、このシステムの低IQな機能を調整・無効化する方法も紹介してきました。ただ、インストールプロセスには触れていませんでした。クリーンインストール用の公式ブ

  2. LinuxでWindows 10のUSBインストールメディアを作成する方法【標準ツールのみで完結】

    今回この作業に挑戦した理由は、少し込み入っています。良い物語と同じように、すべてはある「問題」から始まりました。Windows 10と複数のLinuxディストリビューションをマルチブート構成にしていたノートパソコンが、突然起動しなくなってしまったのです。画面には何も表示されない状態。復旧が必要でした。そして、システムを一つずつ復旧していき、最後に残ったのがWindows 10だったのですが、これがなかなか頑固で、簡単には直ってくれませんでした。 そこで考えたのが、Windows 10のインストールメディアを使うという方法です。起動失敗時にWindowsが自動的に提示する回復ツールよりも、自分で