コマンドライン:プロフェッショナルへの近道
virt-managerのようなグラフィカルインタフェース(GUI)は親しみやすいですが、20〜30台のサーバーを同時に管理したり、自動化が必要な場合には、virshこそが真の味方です。遠隔地からSSHで接続し、数行のコマンドを入力するだけで仮想マシンの起動やネットワーク設定をサクサクこなすのは、単に格好良いだけでなく、生産性も大幅に向上します。
Ubuntu Server上で約15台の仮想マシンが動作するホームラボ環境では、マウスを触ることはほとんどありません。virshを使うことで、複雑なタスクもわずか数秒で処理できます。いくつものメニューをクリックする代わりに、ターミナル一つであらゆるリソースからネットワーク接続までをコントロールできるのです。
クイックスタート:5分で覚える基本コマンド
膨大なコマンドリストに圧倒される必要はありません。以下は、作業時間の90%で使用することになる基本的なコマンドのチートシートです:
# 仮想マシンの一覧を表示(停止中のマシンも含む)
virsh list --all
# 仮想マシンの起動
virsh start vm_name
# 安全なシャットダウン(Windows의 シャットダウンボタンと同じ)
virsh shutdown vm_name
# 強制終了(電源プラグを抜くのと同様、フリーズ時に使用)
virsh destroy vm_name
# ホストLinuxの再起動時に仮想マシンを自動起動する設定
virsh autostart vm_name
# 仮想マシンのコンソールに接続(ネットワークが切れた際に非常に便利)
virsh console vm_name
仮想マシンのライフサイクル管理を深掘りする
1. 設定の動的編集
内部的には、各KVM仮想マシンは単純なXML設定ファイルにすぎません。RAMを2GBから8GBにアップグレードしたり、CPUコアを追加したりする必要がある場合は、次のコマンドを使用します:
virsh edit vm_name
このコマンドは、デフォルトのエディタ(通常はNanoまたはVi)で設定ファイルを開きます。保存して終了すると、virshが自動的に構文をチェックします。問題がなければ、変更内容は次回の起動時に適用されます。
2. クローン作成のテクニック
OSを最初から再インストールして20分を無駄にするのはやめましょう。最適化済みの標準OSイメージ(ゴールドイメージ)を作成しておき、virt-cloneを使用して1分以内に大量のクローン仮想マシンを作成するのが私流です:
virt-clone --original template-ubuntu --name web-server-01 --file /var/lib/libvirt/images/web-server-01.qcow2
このツールは非常にスマートで、内部ネットワークでのIP競合を避けるために新しいMACアドレスを自動的に生成してくれます。
プロのための高度なテクニック
Snapshot:試行錯誤の際の保険
apt upgradeを実行したり、システム設定ファイルを変更したりする前に、すぐにスナップショットを作成しましょう。万が一、サーバーにエラー(カーネルパニックやアプリの競合など)が発生しても、わずか2秒で以前の完璧な状態に戻すことができます。
# システムのスナップショットを作成
virsh snapshot-create-as --domain vm_name --name "update前" --description "Nginxアップグレード直前のスナップショット"
# 以前の状態に復元
virsh snapshot-revert vm_name --snapshotname "update前"
ネットワーク管理の悩みを解消
仮想マシンがインターネットに接続できず困ることはよくあります。virshは仮想マシンとは独立してネットワークを管理します。defaultネットワーク(NAT)が常にactive状態であることを確認してください:
# ネットワークの状態を確認
virsh net-list --all
# defaultネットワークが停止している場合は起動する
virsh net-start default
# 仮想マシンが取得したIPアドレスの一覧を表示
virsh net-dhcp-leases default
DevOpsに役立つちょっとしたコツ
コンソールの「迷宮」から脱出する
初心者がよく陥るミスは、virsh consoleから抜け出せなくなることです。Ctrl + Cは機能しません。魔法のショートカットキー、Ctrl + ]を覚えておきましょう。
CPU Pinningによるパフォーマンス最適化
高負荷のデータベースを運用している場合は、virsh vcpupinを活用しましょう。このテクニックは、仮想マシンのvCPUを特定の物理コアに固定します。これによりレイテンシが大幅に削減され、CPUのL3キャッシュを最大限に活用できるようになります。
virshをマスターすることは、TerraformやOpenStackによるインフラ管理へと進むための重要なステップです。思い切ってGUIを閉じ、今日からコマンド入力を始めましょう。作業スピードが劇的に変わるのを実感できるはずです。

