今回はKVMの仮想マシンに割り当てるさまざまな仮想リソースについて解説します。はじめに仮想CPUの仕組みです。KVMでは仮想マシンはホストLinux上のプロセスとして実行されます。Linuxカーネルのプロセス・スケジューラによって,仮想マシンが持つ仮想CPUに対して,定期的にCPUの実行時間が割り当てられます。複数の仮想CPUを割り当てた場合は,1つのプロセス内で複数の処理を平行して行うマルチスレッドの仕組みによって,複数の仮想CPUによる並列処理を実現します。VTやAMD-Vなどのプロセッサが提供する仮想化支援機能を利用することで,一般ユーザ権限のプロセスとして仮想マシンを効率的に実行することが可能です。仮想メモリについては,2段階のアドレス変換が行われます(図1⁠)⁠。KVMの仮想メモリアクセスKVMのハイパーバイザは,各仮想マシンに「仮想的な物理メモリ」を割り当てます。Table/拡張ページテーブル)に記録して管理します。各仮想マシン上のゲストOSは,「⁠仮想的な物理メモリ」を本物の物理メモリと思い込んでいますので,ゲストOSは,各プロセスの論理アドレスとGPFNの対応をページテーブルに記録します。仮想マシン上のプロセスが論理アドレスを指定してメモリにアクセスすると,「⁠論理アドレス→GPFN→MPFN」というアドレスの変換が行われて,実際にデータが存在する物理メモリにアクセスすることになります。仮想ディスクと仮想NICについては,KVMではQEMUを利用しています。QEMUはソフトウェア的なエミュレーションで仮想マシンを実行するソフトウェアですが,この中でCPUの仮想化やメモリの仮想化などについて,CPUの仮想化支援機能を利用するように置き換えたものがKVMです。したがって,KVMでも仮想ディスクなどのデバイスは,QEMUのエミュレーションによって提供されています。仮想NICについては第3回で解説しましたので,ここでは,virt-managerによる仮想CPU/仮想メモリ/仮想ディスクの操作を説明します。ゲストOSの種類によっては,動的なリソース変更に対応したものもありますが,現状ではまだ十分に対応されているとはいえません。仮想リソースの変更は,基本的には仮想マシンを停止(シャットダウン)した状態で実施します。メニューで仮想デバイスの管理画面を開いて,[Processor]を選択します(図2⁠)⁠。virt-managerの仮想CPU管理画面この画面で仮想マシンに割り当てる仮想CPUの個数が変更できます。物理CPUの個数とは無関係に,1つの仮想マシンに対して最大64個までの仮想CPUを割り当てることができます。パフォーマンスの観点では,物理CPUの個数以上の仮想CPUを割り当てる意味はありません。「⁠CPUピニング」はこの仮想マシンが使用する物理CPUの範囲を制限する際に指定します。「⁠0,3-5,7」のように指定します。これは,「⁠0,3,4,5,7番目」の物理CPUを使用するという指定になります。同じ画面で[Memory]を選択すると,仮想CPUに割り当てるメモリ量の変更ができます。「⁠割り当てを変更」と「最大割り当て」の2種類の指定があります。「⁠最大割り当て」は動的なメモリの増減を行う際に関連する設定ですが,基本的には両方に同じ値を設定しておきます。新たな仮想ディスクを追加する際は,図2の画面で「ハードウェアを追加」をクリックして,「⁠ハードウェアタイプ」に「Storage」を選択します。この時,図3の画面が表示されます。virt-managerの仮想ディスク追加画面ここで作成する仮想ディスクの容量を指定します。仮想ディスクのアクセス速度が向上しますので,「⁠すぐにディスク全体を割り当てる」にはチェックを入れたままにしておくことをお勧めします。Disk」を指定すると,仮想化環境に最適化された仮想ディスクのエミュレーションが行われます。既存の仮想ディスクを削除する場合は,図2の画面で削除対象の仮想ディスクを選択して「削除」ボタンをクリックします。この他に,virt-managerでは既存の仮想マシンの複製(クローン)を行うことも可能です。IPアドレスなど,ゲストOS内部の設定は複製後に手動で変更する必要があります。このような変更を自動化するスクリプトのサンプルが公開されていますので,こちらも参考にしてください。virt-manager著者プロフィール阿部純一郎(あべじゅんいちろう)サーバ管理技術のスペシャリストとして活動。お客様環境に合わせたデータセンターの効率的な管理方法を提案、適用を推進。近年はプライベート・クラウド・コンピューティング環境での活用に注力。大澤隆(おおさわたかし)Linux/OSS等のオープン・テクノロジー・スペシャリストとして活動し,システム設計,構築を通じて企業システムへの適用を推進。本年よりオープン・テクノロジーのクラウド・コンピューティング環境での活用に注力。中井悦司(なかいえつじ)Linux/OSSを中心とするオープン・テクノロジーのスペシャリスト。近年はプライベート・クラウドの設計・構築に関わりながら,企業システムにおけるクラウド・コンピューティング技術の活用にも注力。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。