KVM徹底入門: Linuxカーネル仮想化基盤構築ガイド

著者 :
  • 翔泳社 (2010年7月1日発売)
3.79
  • (4)
  • (8)
  • (6)
  • (1)
  • (0)
本棚登録 : 155
感想 : 9
3

勤務先のシステムでKVMを利用している箇所があり、もっと有効活用できないかと読んでみた。KVMの日本語の信頼できる情報は多くない。本書は2010年出版の古い本ではあるが、数少ない日本語の情報源だ。根幹部分を知るには役に立つ。

世間ではAWSなどのクラウド基盤が話題になっている。しかし、そのようなパブリッククラウドが必ずしも最良とは限らない。KVMで構築した、社内で自由に扱えるプライベートクラウドという可能性も考えてみたい。Ansibleのようにインフラをコード記述できる仕組みも整ってきているが、KVMはそれとの相性も良い。プライベート環境で、コマンドひとつで仮想サーバを構築・削除できるのはやはり便利だ。

本書を読んで、ざっくり以下の3点が役に立った。

<KVMの基本構造>
「KVM(Kernel-based Virtual Machine)」と一括りにされることが多いが、KVMはいくつものコンポーネントで成り立っている。ハードウェア、ホストOS(及びそのLinuxカーネルに組み込まれたKVM)、qemu、仮想ドライバ、libvirt。そして、それらにユーザがアクセスするためのツール類 virsh、virt-manager、virt-install、qemu-img …etc。どのような構成要素が存在し、それらがどのように関連し合っているのかを大雑把に理解できたことは大きかった。
ネット検索でもKVMを用いた仮想基盤構築の手順はたくさん出てくるが、それらはセットアップ手順の中で目に見える部分を説明しているだけのことが多い。裏側にある仕組み、なぜそのようになっているのか、今の仕組みができるまでの歴史的背景などをひとつの流れの中で丁寧に説明されたものを読むと、理解もしやすい。

<スナップショット>
KVMのスナップショット機能は、仮想ディスクフォーマットのqcow2(QEMU Copy On Write)の機能を利用している。本書では、スナップショット作成時/削除時にどのようなデータ操作が行われるのかが説明されていた。
スナップショットに関しては、本書出版時とは状況がだいぶ変わっているようだ。本書とは別で調べたことを含めて、ざっと箇条書き。

・KVMのスナップショットには内部スナップショット/外部スナップショットが存在し、今ではRedHatは内部スナップショットを非推奨としている(本書では内部スナップショットにのみ言及)。
・libvirtが内部スナップショットの操作に対応し、より簡単に利用できるように(本書ではqemu-imgを用いたローレベルな方法で説明)。
・内部スナップショットは、qcow2ファイル内にスナップショットを保持する。そのことから、スナップショット作成時のディスクアクセス遅延、qcow2ファイルのサイズ増大(しかも、一度増大したものはファイル再構成でしか縮小できない)という問題がある。
・外部スナップショットは、スナップショットを外部ファイルに書き出すので、そのような問題を持たない。しかし、2021年現在libvirtではスナップショット作成/削除しか対応しておらず、復元ができない。

A.13. libvirt による外部スナップショット作成の回避策 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-troubleshooting-workaround_for_creating_external_snapshots_with_libvirt

<ライブマイグレーション>
ライブマイグレーションとは、仮想マシンを起動状態のまま、サービス影響を与えずに他の仮想基盤に移動させる技術。OSが起動しているので、当然ながらメモリの内容は絶えず変化する。無停止でのマイグレーションを行うために、「(1)メモリ上のデータを転送 → (2)書き変わったメモリページをチェックして再送」の流れを繰り返し、差分が十分に小さくなったタイミングで「(3)移設元の仮想マシンを停止 → (4)移設先で仮想マシンを起動」という流れを踏む。こういった仕組みが説明されていた。

本書では触れられていないが、メモリだけでなく仮想ディスクも転送するストレージライブマイグレーション機能もある。本書の助けもあって、ストレージライブマイグレーションが可能な仮想基盤群を構築できた。
-----

本書を読み、Red Hat Enterprise Linux の仮想化に関するドキュメントを読み(両方とも日本語)、それから各コマンドのmanやupstreamのサイトの英文ドキュメントを必要に応じて読むことで、だいぶ理解を深められた。

仮想化と言えば VMware のイメージだったが、Linux の仮想化機能もすごい。オープンソースの仮想マシンに触れられたのは良かった。

読書状況:読み終わった 公開設定:公開
カテゴリ: 技術・仕事
感想投稿日 : 2021年2月27日
読了日 : 2021年2月13日
本棚登録日 : 2021年2月6日

みんなの感想をみる

コメント 0件

ツイートする