木曜日, 4月 26, 2012

KVMの管理 第10回(仮想ディスクの作成)

[概要]
仮想ディスクの作成方法について説明します。

[詳細]
ストレージ・プールの管理画面から、仮想ディスクを作成する方法について、説明を行います。
なお、仮想ディスクを作成可能なストレージ・プールのタイプは、ディレクトリー、NFS共有されたディレクトリー、Pre-Formatted Block Devicceです。これ以外のタイプでは仮想ディスクを作成することができません。それでは、作成手順について説明を始めます。

  1. ストレージ・プールの管理画面にある「新規ボリューム」を押し、作成画面を表示します。
  2. 必要項目を入力します。
    • 〔名前〕
      任意のファイル名を指定します。拡張子はimgで作成されます。
    • 〔フォーマット〕
      仮想ディスクのフォーマットを選択します。
      • "raw" : 仮想マシンに依存しない形式
      • "cow" : User Mode Linuxで使用されるフォーマット
      • "qcow2" : QEMUのイメージ・フォーマット
      • "qcow" : 旧バージョンのQEMUイメージ・フォーマット
      • "vmdk" : VMwareの仮想ディスクのディスフォーマット
      • "vpc" : Virtual PCのディスクフォーマット
    • 〔最大容量〕
      ファイルの(仮想OSから見えるサイズ)

    • 〔割り当て〕
      仮想ディスクの作成時に割り当てる容量を指定します。なお、qcow2以外のフォーマットでは対応していません。

  3. 「完了」を押すとストレージ・プールが作成されます。
  4. フォーマットを使い分けは、次のようにするよいでしょう。






    • 仮想ディスクの暗号化を行いたい。
    • ⇒ qemu2

    • ホストのストーレジを節約したい。
    • ⇒ qemu2

    • VMwareと共有したい。
    • ⇒ vmdk

    • Virtual PCと共有したい。
    • ⇒ vpc

    • それ以外。
    • ⇒ raw
    フォーマットについては、上手に使い分けてください。

以上で仮想ディスクの作成方法についての説明を終わります。

土曜日, 4月 21, 2012

KVMの管理 第9回(ストレージ・プールの管理)

[概要]
仮想ディスクの格納場所であるストレージ・プールの管理について説明します。

[詳細]
今回は、仮想ディスクの格納場所であるストレージ・プールの管理について説明します。
ストレージ・プールに使用できるストレージは次の種類があります。 「ディレクトリー」、「物理ディスク」、「Pre-Formatted Block Devicce」、「iSCIターゲット」、「LVMボリュームグループ」、「Multipath Devicec Enumerator」、「NFS共有されたディレクトリー」、「SCSI Host Adapter」。これらについての詳細は、ストレージ・プールの作成の項で説明します。

["ホスト詳細"ウィンドの起動]
仮想マシンマネージャーで、変更したいホストを選択します。
メニューから"編集" → "ホスト詳細"を選択する。もしくは、右クリックした後に"Details"を選択します。

[ストレージの表示]
"ホスト詳細"の画面で"ストレージ"のタブを選択して、ストレージの管理画面を表示します。既存のストレージ・プールを選択すると、そのプールの情報が表示されます。 virt-manager (実際はlibvrit)では、defaultというストレージ・プールがインストール時に作成されいてます。

[ストレージ・プールの起動・停止]
ストレージ・プールの起動、停止は、操作するストレージ・プールを選択した後、ウィンドの左下にあるそれぞれ左から2番目と3番目のボタンを押すと直ちに実行されます。

[ストレージ・プールの削除]
ストレージ・プール停止した後に、右端にある削除ボタンを押すと確認のダイアログがポップアップするので、それに答えると削除が実行されます。

[ストレージ・プールの作成]
まず、一番左のボタン("+")を押しウィザードが起動します。
ストレージ・プールの種類によって作成手順が異なります次の項からそれぞれ分けて説明します。

〔ディレクトリー〕
ホストにあるディレクトリーをストレージ・プールとして使用します。 なお、libvrtのインストール時に作成されるストレージ・プール"default"は、このタイプです。

  • ステップ 1/2
    • 名前 : 一意であるストレージ・プール名を指定します。
    • 種類 : 「dir:ファイルシステムディレクトリー」を選択します。
  • ステップ 2/2
    • ターゲットパス:ストレージ・プールとするホスト上のディレクトリを指定します。
    • 「完了」を押すとストレージ・プールが作成されます。
  • このストレージ・プールでは、virt-managerから仮想ディスクの作成・削除ができます。作成方法はこちら

〔物理ディスク〕 ホストに接続された物理ディスクをストレージ・プールとして使用します。

  • ステップ 1/2
    • 名前 : 一意であるストレージ・プール名を指定します。
    • 種類 : 「disk:物理ディスクデバイス」を選択します。
  • ステップ 2/2
    • ターゲットパス : "/dev/"を変更しないでください。
    • フォーマット : パーティション・テーブルのフォーマットを選択します。
    • ソースパス : ストレージ・プールとして使用するデバイスファイルを指定します。(/etc/sda, /etc/sdbなど)
    • プールを構築 : ストレージ・プールの作成と同時に、パーティションテーブルのフォーマットを行います。
    • 「完了」を押すとストレージ・プールが作成されます。
  • このストレージ・プールでは、virt-managerからパーティションを作成することができます。
  • ※注意

    • パーティション名は自動的に付加されます。つまり、任意の名前を与えても無視されます。
    • 拡張パーティションを作成することはできません。

〔Pre-Formatted Block Devicce〕 フォーマット済みのパーティションをストレージ・プールとして使用します。

  • ステップ 1/2
    • 名前 : 一意であるストレージ・プール名を指定します。
    • 種類 : 「fs:Pre-Formatted Block Devicce」を選択します。
  • ステップ 2/2
    • ターゲットパス : マウントポイントとなるディレクトリを指定します。
    • フォーマット : マウントするデバイスのフォーマットタイプを選択します。"auto"に設定すると自動判別します。
    • ソースパス : ストレージ・プールとして使用するデバイスファイルを指定します。(/etc/sda1, /etc/sdb2など)
    • 「完了」を押すとストレージ・プールが作成されます。
  • このストレージ・プールではvirt-managerから仮想ディスクの作成・削除ができます。作成方法はこちら

〔iSCSIターゲット〕 iSCSIで共有されているをストレージ・プールとして使用します。

  • ステップ 1/2
    • 名前:一意であるストレージ・プール名を指定します。
    • 種類:「iscsi:iSCSIターゲット」を選択します。
  • ステップ 2/2
    • ターゲットパス:ボリューム・グループのディレクトリを指定します。(/dev/Group01, /dev/VolGroup00など)
    • ホスト名 : 接続先のホストを指定します。ホスト名、IPアドレスのどちらでも構いません。
    • ソースパス : (foo.bar.com-disk01:tgtdなど)
    • IQN : ターゲットにIQNが設定されいる設定されている場合、IQNを指定します。
    • 「完了」を押すとストレージ・プールが作成されます。
  • ボリュームの作成・削除をすることはできません。

〔LVMボリュームグループ〕 LVMボリュームグループをストレージ・プールとして使用します。

  • ステップ 1/2
    • 名前:一意であるストレージ・プール名を指定します。
    • 種類:「logical:LVMボリュームグループ」を選択します。
  • ステップ 2/2
    • ターゲットパス:ボリューム・グループのディレクトリを指定します。(/dev/Group01, /dev/VolGroup00など)
    • ソースパス : ボリューム・グループを構成する物理デバイスを指定します。(/etc/sda1, /etc/sdbなど)
    • ※注意
      • 物理デバイスは1つしか指定できません。
      • 「プールを構築」をチェックしたときのみ有効になります。
    • プールを構築 : ストレージ・プールの作成と同時に、ボリューム・グループの作成を行います。
    • 「完了」を押すとストレージ・プールが作成されます。
  • このストレージ・プールでは、virt-managerからLVMボリュームを作成・削除することができます。
    これはlvmコマンドでボリュームを作成する場合と同じことです。

  • 「名前」と「最大容量」を入力して、「完了」を押すとボリュームが作成されます。

  • ※参考:当然ですがlvsコマンドでボリュームが作成されたとが確認できます。

〔Multipath Device Enumerator〕

  • ステップ 1/2
    • 名前:一意であるストレージ・プール名を指定します。
    • 種類:「mpath:Multipath Device Enumerator」を選択します。
  • ステップ 2/2
    • ターゲットパス:"/dev/mappar"で固定です。変更しないでください。
    • 「完了」を押すとストレージ・プールが作成されます。
  • ボリュームの作成・削除をすることはできません。

〔NFS共有されたディレクトリー〕

  • ステップ 1/2
    • 名前:一意であるストレージ・プール名を指定します。
    • 種類:「netfs:NFS共有されたディレクトリー」を選択します。
  • ステップ 2/2
    • ターゲットパス : マウントポイントとなるディレクトリを指定します。
    • フォーマット : ネットワーク・ファイルシステムのタイプを選択します。"auto"に設定すると自動判別します。
    • ホスト名 : 接続先のホストを指定します。ホスト名、IPアドレスのどちらでも構いません。
    • ソースパス : マウントするリモート先のディレクトリを指定します。(/var/exportsなど)
    • 「完了」を押すとストレージ・プールが作成されます。
  • このストレージ・プールではvirt-managerから仮想ディスクの作成・削除ができます。作成方法はこちら。
    なお、マウントポイントの下に存在するファイル、ディレクトリに対して、全てのユーザに読込権を与える必要があります。

〔SCSI Host Adapter〕 ホストに接続されているSCSIアダプタを、ストレージ・プールとして使用します。 接続されているボリュームとしてディスクがリストされます。

  • ステップ 1/2
    • 名前:一意であるストレージ・プール名を指定します。
    • 種類:「scsi:SCSI Host Adapter」を選択します。
  • ステップ 2/2
    • ターゲットパス:"/dev/disk/by-path"を変更しないでください。
    • ソースパス : 使用するSCSIアダプタをリストから選択します。
    • 「完了」を押すとストレージ・プールが作成されます。
  • ボリュームの作成・削除をすることはできません。

以上でストレージ・プールの管理についての説明を終わります。

月曜日, 4月 16, 2012

KVMの管理 第8回 (仮想ネットワークの管理)

[概要]
virt-managerを利用した仮想ネットワークの管理方法を説明します。

[詳細]
virt-managerでは、仮想ネットワークの作成、削除、起動、停止を行うことが出来ます。
さて、仮想ネットワークの管理は、"ホスト詳細"ウィンドで行います。まずは、"ホスト詳細"ウィンド起動しましょう。

["ホスト詳細"ウィンドの起動]
仮想マシンマネージャーで、変更したいホストを選択します。
メニューから"編集" → "ホスト詳細"を選択する。もしくは、右クリックした後に"Details"を選択します。

[仮想ネットワークの表示]
"ホスト詳細"の画面で"仮想ネットワーク"のタブを選択して、仮想ネットワークの画面を表示します。既存のネットワークをクリックすると、そのネットワークの情報が表示されます。virt-manager (実際はlibvrit)では、defaultという仮想ネットワークがインストール時に作成されいてます。

[仮想ネットワークの起動・停止]
仮想ネットワークの起動、停止は、操作する仮想ネットワークを選択した後、ウィンドの左下にあるそれぞれのボタンを押すと直ちに実行されます。
なお、仮想ネットワークを停止したした場合、ネットワークに接続している仮想マシンは、一度、シャットダウンを行い、停止後、起動を行うというプロセスを経ないとネットワークへの再接続は出来ません。削除、停止ともに、接続されている仮想マシンがある場合には、十分に注意を払って実行してください。

[仮想ネットワークの削除]
なお、仮想ネットワーク停止した後に、削除ボタンを押すと確認のダイアログがポップアップするので、それに答えると実行されます。

[仮想ネットワークの作成]

  1. ウィザードの起動
    仮想ネットワークの画面で、"+"ボタンを押します。ウィザードが起動し、手順が表示されますので、進むを押してください。
  2. ネットワーク名の入力
    仮想ネットワーク名を入力します。ネットワーク名はホスト上で一意である必要があります。なお、ゲートウェイのIPアドレスは、必ずネットワークの先頭のアドレスとなりますので、仮想マシンのIPアドレスには割り当てないよう注意してください。
  3. ネットワークアドレスの指定
    ネットワークアドレスの範囲の指定を行います。
  4. DHCPの設定
    DHCPサーバの有効・無効の設定と、有効にした場合にはDHCPで配布するIPアドレスの範囲を指定します。
    なお、仮想ネットワークの作成後は、virt-managerからIPアドレスの予約が出来ません。変更方法については回を改めて説明します。
  5. 物理ネットワークの選択
    接続する物理ネットワークを選択します。
    • "隔離された仮想ネットワーク"は、ホスト内だけで使用可能な仮想ネットワークを構築します。"host_only"ネットワークとも呼ばれます。
    • 外部のネットワークに接続する場合には、"物理ネットワークにフォワード"を選択します。
      [宛先]:
      仮想ネットワークを接続する物理デバイスを選択します。
      "どれかの物理デバイス"を選択すると、任意の物理デバイスが選択されます。(経験からすると、ASCIIコード順で選択されるようです。)ubuntuでは"どれかの物理デバイス"しか選択できません。
      [モード]:
      "NAT", "ルーティング"のいずれかから選択します。
  6. 設定内容の確定
    確認画面が表示されますので、誤りがなければ"完了"ボタンを押して、仮想ネットワークを作成してください。
  7. 確認
    正しく作成されると仮想ネットワークの画面に、仮想ネットワークが表示され、仮想NICの作成時にネットワークがリストされるようになります。

これにて、仮想ネットワークの設定は終了します。なお、仮想ネットワークの設定変更はvirt-managerでは出来ません。変更方法は回を改めて説明します。
次回は、virt-managerでのストレージ・プールの作成について説明します。

水曜日, 3月 21, 2012

ubuntu, Debianで、不要になった古いカーネルを削除する

[概要]
Debian, ubuntuで不要になったカーネルを削除する方法を説明しています。

[詳細]
Debian, ubuntuでは、カーネルを更新しても、古いものは削除されません。"apt-get autoremove"を実行しても残ります。 "/boot"を圧迫することにもなりますので、不要になったカーネルは削除したいものです。 下のように"--purge"のオプションをつけることで削除することができます。

root@ubuntu:~# sudo apt-get remove --purge linux-image-2.6.31-14-generic

月曜日, 3月 19, 2012

KVMの管理 第7回
(仮想ディスプレイの管理、仮想ビデオカード、サウンドカードの管理)

[概要]
virt-managerでの仮想ビデオカード、仮想サウンドカードなどの管理方法について説明します。
[詳細]
前回は、仮想NICについて説明しました。今回は、これまで触れていない仮想ディスプレイ、仮想ビデオカード、仮想サウンドカードやその他のデバイスについても一度に説明します。
[ディスプレイ]
  1. 種類
    仮想ディスプレイの種類を"VNC", "Spice"から選択します。("Spice"をubuntu 11.10では使えません。)
  2. アドレス(変更不可)
    クライアントからお接続待ちしている(Listenしている)IPアドレスを表示します。
  3. ポート(変更不可)
    仮想マシンのコンソールに接続する際にこのポート番号を使用します。
  4. TLS port(変更不可)
    仮想マシンのコンソールにセキュアな接続で使用するポート番号です。この項目は"Spice"のみで設定できます。
  5. パスワード
    仮想マシンのコンソールに接続する時のパスワードを設定します。空白の場合は、パスワードなしになります。
  6. キーマップ
    ゲストOSのキーマップを指定します。
[ビデオカード]
"ビデオカード"を選択します。
  1. モデル
    "cirrus", "qxl", "vga", "vmvga", "xen"から、ビデオカードのモデルを選択します。
  2. メモリー(変更不可)
  3. ヘッド数(変更不可)
[サウンドカード]
"Sound"を選択し、"デバイスモデル"から"ac97","es1370", "ich6", "pcspk", "sb16"のうちの1つを選びます。
今回で仮想マシンの管理についての説明は一旦終わります。説明していないデバイスについては、「仮想ネットワークの管理」と「ストレージの管理」の後に改めて、「仮想マシンへのデバイスの追加」の中で説明します。

日曜日, 3月 11, 2012

KVMの管理 第6回 (仮想NICの管理)

[概要]
仮想化環境の管理ユーティリティvirt-managerでの、仮想マシンの仮想ネットワーク・インタフェース(NIC)管理について説明しています。

[詳細]
前回は仮想ディスクについて説明しました。今回は仮想マシン上の仮想NICの管理について触れます。
まず、設定を変更するためには、"NIC :xx:xx:xx"を選択します。

  1. ソースデバイス
    接続するネットワークをリストから選択します。ソースタイプには次の2種類あります。
    • 仮想ネットワーク(network):
      仮想的に構成されたネットワークに接続します。libvirtをインストールした際に"default"が作成され、標準ではこのネットワークが選択されます。仮想ネットワークには3種類ありますが、その説明は回を改めて説明します。
    • 共有デバイスを指定
      ホストで仮想マシンとの共有を行うデバイスを指定します。そして、"共有デバイスを指定"を選択するとブリッジ名というテキストボックスが表示されます。ここにはホストにある接続先のブリッジデバイスを記述します。この接続のまたの呼び方を"ブリッジbridge接続"といいます。
      ブリッジの作成方法はRHEL系はこちら、Debian, ubuntuはこちらを参照してください。
  2. デバイスモデル
    エミュレートしているネットワークカードが表示されます。Intelのe1000など代表的なNICがリストされていますので、ゲストOSがサポートしているNICを選択します。"virtio"はkvmで提供されている準仮想化フレームワークを使用して接続します。2012年現在、Linuxのメジャーなディストリビューションの最新版では、標準でサポートされています。
  3. MACアドレス(変更不可)
    MACアドレスが表示されます。
以上で、仮想ネットワーク・インタフェース(NIC)管理について説明を終了します。次回はディスプレイについて説明します。

金曜日, 3月 09, 2012

KVMの管理 第5回
(仮想ディスクの管理)

[概要]
仮想化環境の管理ユーティリティvirt-managerで個々の仮想マシンでの仮想ディスクの管理について説明しています。

[詳細]
前回、に引き続き、仮想マシンの管理について説明します。今回は仮想ドライブの管理について触れます。詳細画面にて、各仮想ディスクを選択すると、その仮想ディスクの情報が表示されます。仮想ディスクには、「仮想ハードディスク」、「仮想CDROMドライブ」、「仮想フロッピードライブ」があり、設定できる項目がそれぞれ若干異なります。 それでは、項目ごとに説明していきます。

  1. ターゲットデバイス(変更不可)
    選択しているデバイス名が表示されます。仮想マシンからはこちらが認識されます。
  2. ソースパス(変更不可)
    仮称ディスクのパスが表示しされます。
  3. 接続/切断ボタン(CDROM, フロッピーのみ) 接続されているCDROM, フロッピーのイメージもしくは物理ドライブの接続/切断を行います。接続の場合は、ダイアログボックスが表示されるので、既存のイメージを選択するか、物理ドライブをマップします。
  4. ストレージサイズ(変更不可)
    仮想ディスクの論理サイズが表示されます。
  5. 読み込み専用
    仮想ディスクを読み込み専用に設定します。CDROMの場合は、デフォルトでチェックされ変更できません。
  6. 共有可能
    通常、仮想ディスクは1台の仮想マシンからのみマウント出来るよう排他制御がかかります。クラスタシステムなどで複数の仮想マシンから同じ仮想ディスクへアクセスすることが必要な場合は、ここをチェックすることにより同時にアクセス出来るようになります。
  7. 詳細オプション
    1. ディスクパス 仮想ディスクを接続するパス規格を選択します。



      選択可能なドライブ。
      IDEHDD, CDROM
      SCSIHDD, CDROM
      USBHDD
      virtioHDD
      Guest OSで使用するためには、GuestOS側にvirtio用のドライバが必要です。
      floppyフロッピー・ディスク

    2. シリアル番号
      仮想ディスクに、シリアル番号を付加します。設定は任意です。

    3. Storage format
      仮想ディスクのフォーマットを選択します。接続する仮想ディスクのフォーマットに合わせて選択してください。
      raw特定の形式フォーマットされていません。デフォルトで作成されるフォーマットです。
      qcow2QEMUのプロジェクトで開発している仮想ディスクフォーマット
      vmdkVMwareの仮想ディスクフォーマット



  8. パフォーマンスオプション
    1. キャッシュモデル
      defaultサーバのデフォルトに設定します。
      noneキャッシュを使いません。
      writeback読み込み、書き込みの双方でキャッシュを使用します。
      writethrough読み込みのみキャッシュを使用します。
    2. IOモード
      defaultサーバのデフォルトに設定します。
      nativeLinuxネイティブの非同期I/Oを使用します。
      threadsPOSIX pthreadによる非同期I/Oを使用します。

上で、仮想ディスクについての説明はおしまいです。次回は仮想NICの管理について説明を行います。

月曜日, 3月 05, 2012

NICのデバイス名を固定

[概要]
NICのデバイス名を固定します。
[詳細]
Linuxでは、ブートのタイミングや増設カードの追加によって、NICがKernelから認識される順序が変ってしまうことがあります。udevを使い、これを固定化する方法を説明します。

設定方法:
"/etc/udev/rules.d/70-persistent-net.rules"ファイルに、デバイス名を固定するNICを下記の要領で列記します。記載後、OSをリブートすると設定が反映されます。
KERNEL="eth*", SYSFS{address}=="マックアドレス", NAME="デバイス名"

設定サンプル:
root@ubuntu:~# vi /etc/udev/rules.d/70-persistent-net.rules
KERNEL=="eth*", SYSFS{address}=="52:54:00:cc:52:d1", NAME="eth0"
KERNEL=="eth*", SYSFS{address}=="52:54:00:30:61:72", NAME="eth1"
動作確認:
root@ubuntu:~# ifconfig
eth0 Link encap:イーサネット ハードウェアアドレス 52:54:00:cc:52:d1
inetアドレス:192.168.122.211 ブロードキャスト:192.168.122.255 マスク:255.255.255.0
inet6アドレス: fe80::5054:ff:fecc:52d1/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:1271 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:949 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:122090 (122.0 KB) TXバイト:130943 (130.9 KB)

eth1 Link encap:イーサネット ハードウェアアドレス 52:54:00:30:61:72
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 メトリック:1
RXパケット:89 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:1596 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:10831 (10.8 KB) TXバイト:110510 (110.5 KB)
割り込み:10 ベースアドレス:0xa000
以上で、NICのデバイス名の固定方法の説明を終わります。