2023年 03月 20日
SUSE Linux Enterprise 15 sp5 ではじめての KVM 仮想化
ここでは、SUSE Linux Enterprise 15,5beta を使って、Linux で初めて KVM ハイパーバイザーを使った仮想コンピュータ、VM の作成方法を説明します。
SUSE?
日本では目立たない SUSE Linux Enterprise (SLE)ですが、SUSE は独立企業としては世界最大のドイツのオープンソースソフトウェア企業です。あれ? RedHat は? と思った方は鋭いですね。RedHat は IBM の傘下なので、独立系としては SUSE が世界一の Linux ディストリビューターなのです。一応世界一です。
主に使われている分野が主にハイエンドの企業向けという事で、一般のレベルには手が届かない様に見えますが何のことはない、一般のユーザでも購入して利用できますし、高い信頼性と性能を持つ SUSE Linux Enterprise は、中小規模の組織のプライベートクラウド基盤として安心して利用出来るでしょう。サブスクリプションを購入すれば、安心して長年使い続ける事ができるのが SUSE Linux Enterprise 15 です。
また、SUSE Linux Enterprise/openSUSE Leap などの ”SUSE 系”で特徴的な YaST 管理ツールが驚くほど便利で、vi を使ったことのない人でも簡単な GUI 操作で、Webサーバなどのサービスの設定や、追加のソフトウェアのインストールなどを行うことができます。YaST のアイコンを開くたびに、「次は何をすればよいか」が脳内にリストアップされることでしょう。
自主的に自己責任で使うには 、SLE から有償のパッケージやサードパーティのパッケージを取り除いた openSUSE Leap15 もお勧めです。
※ ここでの説明は 2023/3 現在の beta 版での情報です。インストールは Full インストールイメージの一枚目を USB メモリ等に書き込んでブートすれば良いのですが、サーバ構築中にパッケージや追加言語のインストール中も、インストールメディアを差しておく必要があって面倒です。大量にサーバをインストールするには面倒ですね。
Evaluation copy の入手先はこちら、簡単なユーザ登録が必要です
オンラインでもインストールができますが、先に購入したサブスクリプション登録が必要です。最新のパッケージがダウンロードできますが、閉じたネットワーク環境では使えません。
また、サードパーティデバイスドライバが必ずしも最新のカーネルに対応しているとは限りません。過去にパッチを当てた後、ドライバがカーネルに合わずインストールできなかったことがあったので、ダウンロードした「吊るしの状態」でドライバをインストールして、その後にサブスクリプション登録とアップデートのインストールをお勧めします。
そこで同じネットワークに HTTP や SMB, FTP などのサーバを用意してインストールソースにすると便利です。以前、 Windows でCDイメージを「共有」させてSMB 共有からインストールした事がありました。たまに、ベアメタルサーバの場合 ISO イメージから、ブートできない事もあり、その場合 SMB や HTTP サーバなどからインストールする必要がある場合もあります。そのため事前にインストールソースを別なサーバに用意しておくと後々便利です。
具体的には、例えば HTTP サーバの場合、ISO イメージを次のようにマウントして置くと良いでしょう。
# mount -o loop <path>/SLE-xxx-xxx-GM1.iso /srv/www/htdocs/<subdir>
> Installation
> 言語とキーボードの選択:特殊記号のレイアウトを確認します (以下の事例は英語を選択しています)※ ここでは英語でインストールしていますがもちろん日本語でもインストールできます。しかし面倒なところで、おかしな日本語のメッセージが出ると事例を探すのが面倒ですから、サーバを入れる場合は英語のママがお勧めです。
> プロダクトの選択:SUSE Linux Enterprise Server をチェック
License Agreement : Agree にチェック
Registration:ここでは Skip します。スキップしない場合、次のスクリーンでサブスクリプション登録を要求されます。
Extention を選択。ブートメディアから直接インストールする場合は、ここで追加の拡張機能をチェックします。
インストールソースを別に用意した場合は、ここはそのまま Next します。もし、別なサーバーにインストールソースを用意できず、CD/DVD メディアからそのままインストールする場合は、追加の拡張機能として "Desktop Application Modules," と ”Legacy Tools” の2つを追加してチェックしておきます。
Add on プロダクトのインストールソースがブートメディアになっています。
ここで、前画面でチェックされた拡張機能を全て Delete します。
次に Add ボタンを押して、インストールソースに、用意したインストールソースサーバを指定します。
ここではHTTP サーバを指定しています。
インストールソースにアクセスできると、再び追加の拡張機能の選択画面が出てきます。ここで、実際インストールする Extention をチェックします。
追加で Desktop Application Modules ..... と Legacy Modules( 必要であれば )... をチェックします。YaST GUI や virt-manager、サブスクリプション登録など GUI を必要とするケースがあるので、Desktop Application Modules は入れておくと良いでしょう。ifconfig や netstat など、使い慣れた Legacy ツールもここでインストールできます。デスクトップは軽量版の gnome です。
これで、拡張機能のインストール準備ができました。
System Role: SLES with gnome をチェック
次にパーティションを作成します。デフォルトでは、/var/lib/libvirt/images の下に仮想 VM イメージが作成されます。VM の作成時に別なディレクトリの指定もできます。ケース・バイ・ケースで、ここを iSCSI や CIFS マウントさせて、ライブマイグレーション前提で構築する場合もあるでしょう。
ここでは、/var を別パーティションとします。
パーティションの初期提案は、ルート:BTrfs 、/home: xfs です。Expert Partitioner から、提案内容(Start with Current Proposal )を基に ルートパーティションと /var を分割します。
初期提案から、ルートと、/home の割当を削除して、改めて、ルートパーティション( BTrfs )に 30 Gb以上、(60Gb以上推奨)と残りほぼ全てを /var(XFS) に割り当てます。
/var を別パーティションにする際に、@/var サブボリュームを削除して別パーティションにします。この辺は BTrfs 固有の操作なので戸惑うかも知れません。下の動画をご参考ください。
私の好みなのですが、50Gb 程度の未使用領域を残しておくと将来役に立つ事があります。
パーティションの定義が完成しました。ファイルフォーマット(F) とマウントポイントを確認してください。
確認して Accept します。
タイムゾーン: Asia/Tokyo GMT+9 を選びます。Set Hardware clock UTP はベアメタルサーバーではチェックしたままで結構です。ただし NTP もきっちり設定しておくことです。
ゲストでインストールする時はいつも NTP を設定して、チェック外しますが、正しいのかな。ご意見ください。
ローカルユーザと root ユーザのパスワードを設定します。ローカルユーザは作成しなくてもスキップできます。
ここで最終のインストール内容をチェックします。
Software リンクから、追加のソフトウェアのインストールを選択したり、固定 IP の設定、コンソールログインのシステムターゲットの指定などを行います。
このサマリ画面から、KVMハイパーバイザーのインストールを行います。Software リンク - -> 左の一覧から KVM Virtualization host and tools と KVM Host Server の2つをチェックして追加しておきます。これで、自動的に KVM ホストサーバーがインストールされます。
※ これは aarch64 版なのですが、XEN はないですね。x86 版ならあるのかしら?
※ ここで KVM のチェックを忘れても、後で YaST からインストールもできます。
最後のサマリ画面から Install ボタンでインストールが開始されます。RH 系クローンはここで Enter を押すと勝手にインストールが始まって「あれれ!」となりますが、SUSE 系ではここで必ず確認ダイアログが出てくれるので親切です。
誤って Enter しても、デフォルト Back というのは親切です。この段階ではパーティションのフォーマットもやらないので、いつでも Back することができます。
パーティションの作成とファイルコピー、パッケージのインストール、ブートの設定などが始まり、自動的に再起動します。環境にもよりますが、数分から数十分かかります。
再起動したら、YaST > System > Network Settings を開いて、ネットワークが Bridge 経由で接続されていることを確認してください。ハイパーバイザーは、ブリッジ経由で Lan 接続します。インストールする時に KVM をインストールすると、自動的にここは設定されますが、後で YaST で設定すると、この設定は手動で行う必要があるケースがあります。
あとは、YaST から NTP の設定、第2言語で日本語環境、フォントのインストールなどを行います。
# virt-manager &
を起動して、実際に仮想 VM を作成します。
あとは、必要なデバイスドライバのコンパイル、インストールを行って、YaST の Product Registration から、サブスクリプションの購読を開始して zypper update します。
サブスクリプションの購入はオンラインでもできます。
以上で SUSE Linux Enterprise 15sp5 での KVM ハイパーバイザーの構築ができました。蛇足(本当に蛇足)ですが、この環境は M1 Macbook Air の UTM 仮想環境で試しています。SLES15sp4 以降、「仮想環境の入れ子」( Nested VM on VM ) が可能、という噂を聞いたので、UTM で動く SLES15sp5 でも入れ子が出来るか試してみました。ちなみに M1 mac なので aarch64 版です。
動きました。現実的に使えるかと言えばかなり遅いですね。そもそも macbook の様なスマートフォン/デスクトップ用 SoC 環境で動かしてみても、メモリや利用状態では安定しません。たまに落ちます。MAC 用の CPU である M1 チップ自身のパフォーマンスや仮想環境での運用ってどうなのかという問題もあります。そもそもまだ UTM がまだまだ不安定なケースがあります。Parallels Desktop をお持ちの方はチャレンジしてみてはいかがでしょうか。