仮想マシンイメージ (イメージ) は、ブート可能なオペレーティングシステムがインストールされている仮想ディスクを含む単一のファイルです。イメージは仮想マシンのファイルシステムのテンプレートを提供します。
イメージの管理には、ダッシュボードのほかに、glance および nova コマンド行クライアント、または Image Service API と Compute API を使用できます。
nova image-list コマンドは、使用可能なイメージのリストを表示します。イメージの名前または ID は、VM インスタンスを作成するときに使用します。
$ nova image-list +--------------------------------------+-------------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+-------------------------+--------+--------+ | e422aae1-b0ba-618c-85d3-a214059800e2 | Solaris Kernel Zone | ACTIVE | | | e82aa857-ec92-4859-f530-deb89274863e | Solaris Non-global Zone | ACTIVE | | +--------------------------------------+-------------------------+--------+--------+
glance image-list コマンドは、ディスクフォーマット、コンテナフォーマット、イメージサイズなどの追加情報を表示します。
$ glance image-list --human-readable
nova image-show および glance image-show コマンドは、指定されたイメージに関する詳細情報を表示します。
$ nova image-show 'Solaris Kernel Zone' +--------------------------+--------------------------------------+ | Property | Value | +--------------------------+--------------------------------------+ | OS-EXT-IMG-SIZE:size | 1547458560 | | created | 2014-06-29T15:40:49Z | | id | e422aae1-b0ba-618c-85d3-a214059800e2 | | metadata architecture | x86_64 | | metadata hypervisor_type | solariszones | | metadata vm_mode | solariszones | | minDisk | 0 | | minRam | 0 | | name | Solaris Kernel Zone | | progress | 100 | | status | ACTIVE | | updated | 2014-06-29T15:40:55Z | +--------------------------+--------------------------------------+ $ glance image-show 'Solaris Kernel Zone' +----------------------------+--------------------------------------+ | Property | Value | +----------------------------+--------------------------------------+ | Property 'architecture' | x86_64 | | Property 'hypervisor_type' | solariszones | | Property 'vm_mode' | solariszones | | checksum | b2fc9560c15603c7663326db82d5ddaa | | container_format | bare | | created_at | 2014-06-29T15:40:49.108578 | | deleted | False | | disk_format | raw | | id | e422aae1-b0ba-618c-85d3-a214059800e2 | | is_public | True | | min_disk | 0 | | min_ram | 0 | | name | Solaris Kernel Zone | | owner | 7461d4a9f5a64af9a01ae4e84e08c182 | | protected | False | | size | 1547458560 | | status | active | | updated_at | 2014-06-29T15:40:55.769756 | +----------------------------+--------------------------------------+
Solaris では、OpenStack イメージは統合アーカイブです。また、Oracle Solaris 11.2 を実行している必要があります。archiveadm コマンドを使用すると、Oracle Solaris 11.2 を実行している大域ゾーン、非大域ゾーン、およびカーネルゾーンから新しい統合アーカイブを作成できます。OpenStack で使用できるようにイメージを Glance リポジトリにアップロードします。
統合アーカイブはクローンアーカイブか復旧用アーカイブのどちらかです。現在アクティブなブート環境に基づいてクローンアーカイブを作成するか、すべてのブート環境とシステム構成情報を含む復旧用アーカイブを作成します。クローンアーカイブには OS インスタンスのシステム構成情報は含まれません。クローンアーカイブの場合は、インストーラで強制的に再構成を行うか、ユーザーがシステム構成 (SC) プロファイルで構成を指定できます。クローンアーカイブには、アクティブでない BE なども含まれません。システムのすべてが必要な場合は、復旧用の統合アーカイブを使用してください。統合アーカイブの詳細は、Oracle Solaris 11.2 でのシステム復旧とクローンを参照してください。
次のコマンドは、myzone という実行中の非大域ゾーンの統合アーカイブを取得します。
global# zonecfg -z myzone create global# zoneadm -z myzone install global# zlogin myzone \ 'sed /^PermitRootLogin/s/no$/without-password/ \ < /etc/ssh/sshd_config > /system/volatile/sed.$$ ; \ cp /system/volatile/sed.$$ /etc/ssh/sshd_config' global# archiveadm create -z myzone /var/tmp/myzone.uar
既存の VM インスタンスのスナップショットを作成することによって OpenStack イメージを作成することもできます。実行中の VM インスタンスのスナップショットを取得することでイメージを作成するには、nova image-create コマンドを使用します。
VM インスタンスの作成に使用するイメージを作成するほかに、データのバックアップや VM インスタンスの修復のためにカスタムイメージを使用することもできます。レスキューイメージは、VM インスタンスが rescue モードにされたときにブートされる、特殊なタイプのイメージです。管理者は、問題を修正するために、レスキューイメージを使用して VM インスタンスのファイルシステムをマウントできます。
OpenStack のイメージサービスである Glance は、ディスクイメージとサーバーイメージの保存、発見、登録、および配布のサービスを提供します。レジストリサーバーは、クライアントにイメージのメタデータ情報を提供するイメージサービスです。イメージキャッシュは、要求されるたびにイメージをイメージサーバーから再度ダウンロードする代わりに、ローカルホスト上でイメージを取得するためにイメージサービスが使用します。
次のコマンドは、前のセクションで作成された統合アーカイブを Glance リポジトリにアップロードします。フォーマットの種類として raw を使用します。必ず architecture プロパティーを指定してください。
global# glance image-create --container-format bare --disk-format raw \ --is-public true --name "Oracle Solaris 11.2 x86 NGZ" \ --property architecture=x86_64 \ --property hypervisor_type=solariszones \ --property vm_mode=solariszones < /var/tmp/myzone.uar
glance image-create コマンドでは、イメージのアップロードとすべてのプロパティー値の設定を一度に行うことができます。次のスクリプトは、確実に architecture プロパティーを現在のホストのアーキテクチャーに設定してイメージをアップロードする方法を示しています。
#!/bin/ksh # Upload Unified Archive image to glance with proper Solaris decorations arch=$(archiveadm info -p $1|grep ^archive|cut -d '|' -f 4) if [[ "$arch" == "i386" ]]; then imgarch=x86_64 else imgarch=sparc64 fi name=$(basename $1 .uar) export OS_USERNAME=glance export OS_PASSWORD=glance export OS_TENANT_NAME=service export OS_AUTH_URL=http://controller-name:5000/v2.0 glance image-create --name $name --container-format bare --disk-format raw --owner service --file $1 --is-public True --property architecture=$imgarch --property hypervisor_type=solariszones --property vm_mode=solariszones --progress