1.2. イメージの管理
Image サービス (glance) は、ディスクおよびサーバーイメージの検出、登録、および配信のサービスを提供します。サーバーイメージのコピーやスナップショットを作成して直ちに保管する機能を提供します。保管したイメージをテンプレートとして使用し、新規サーバーを迅速に稼働させることができます。これはサーバーのオペレーティングシステムをインストールしてサービスを個別に設定するよりも一貫性の高い方法です。
1.2.1. イメージの作成
Red Hat Enterprise Linux 7、Red Hat Enterprise Linux 6、または Windows の ISO ファイルを使用して、QCOW2 形式の Red Hat OpenStack Platform (RHOSP) 互換イメージを手動で作成します。
1.2.1.1. Red Hat OpenStack Platform における KVM ゲストイメージの使用
すでに準備済みの RHEL KVM ゲスト QCOW2 イメージを使用することができます。
これらのイメージは、cloud-init
を使用して設定されます。適切に機能させるには、ec2 互換のメタデータサービスを利用して SSH キーをプロビジョニングする必要があります。
準備済みの Windows KVM ゲスト QCOW2 イメージはありません。
KVM ゲストイメージでは、以下の点に注意してください。
-
KVM ゲストイメージでは
root
アカウントが無効になっていますが、cloud-user
という名前の特別なユーザーにsudo
アクセスが許可されています。 -
このイメージには
root
パスワードは設定されていません。
root
パスワードは、/etc/shadow
で 2 番目のフィールドに !!
と記載することによりロックされます。
RHOSP インスタンスでは、RHOSP Dashboard またはコマンドラインから ssh キーペアを生成し、その鍵の組み合わせを使用して、インスタンスに対して root として SSH 公開認証を実行します
インスタンスの起動時には、この公開鍵がインスタンスに挿入されます。続いて、キーペア作成時にダウンロードする秘密鍵を使用して認証を行うことができます。
Red Hat Enterprise Linux または Windows のカスタムイメージを作成する場合は、Red Hat Enterprise Linux 7 イメージの作成、Red Hat Enterprise Linux 6 イメージの作成、または 「Windows イメージの作成」 を参照してください。
1.2.1.2. Red Hat Enterprise Linux または Windows のカスタムイメージの作成
前提条件
- イメージを作成する Linux ホストマシン。これは、アンダークラウドまたはオーバークラウドを除いて、Linux パッケージをインストールして実行することのできる任意のマシンです。
advanced-virt リポジトリーが有効になっています。
$ sudo subscription-manager repos --enable=advanced-virt-for-rhel-8-x86_64-rpms
ゲストオペレーティングシステムを作成するのに必要なすべてのパッケージをインストールする libvirt、virt-manager
$ sudo dnf module install -y virt
仮想マシンイメージにアクセスして変更するための一連のツールをインストールする Libguestfs ツール
$ sudo dnf install -y libguestfs-tools-c
- Red Hat Enterprise Linux 7 もしくは 6 の ISO ファイル(詳細については、RHEL 7.2 Binary DVD もしくは RHEL 6.8 Binary DVD を参照) または Windows の ISO ファイル。Windows ISO ファイルがない場合は、Microsoft Evaluation Center にアクセスして評価イメージをダウンロードしてください。
-
キックスタート
ファイルを編集する必要がある場合にはテキストエディター (RHEL のみ)
アンダークラウドに libguestfs-tools
パッケージをインストールする場合は、アンダークラウドの tripleo_iscsid
サービスとのポートの競合を避けるために iscsid.socket
を無効にします。
$ sudo systemctl disable --now iscsid.socket
1.2.1.2.1. Red Hat Enterprise Linux 7 イメージの作成
Red Hat Enterprise Linux 7 の ISO ファイルを使用して、QCOW2 形式の Red Hat OpenStack Platform (RHOSP) 互換イメージを手動で作成します。
[root@host]#
プロンプトのすべてのコマンドを、ホストマシン上で実行する必要があります。
virt-install
でインストールを開始します。[root@host]# qemu-img create -f qcow2 rhel7.qcow2 8G [root@host]# virt-install --virt-type kvm --name rhel7 --ram 2048 \ --cdrom /tmp/rhel-server-7.2-x86_64-dvd.iso \ --disk rhel7.qcow2,format=qcow2 \ --network=bridge:virbr0 --graphics vnc,listen=0.0.0.0 \ --noautoconsole --os-type=linux --os-variant=rhel7
このコマンドによりインスタンスが起動し、インストールプロセスが開始されます。
注記インスタンスが自動的に起動しない場合には、
virt-viewer
のコマンドを実行して、コンソールを確認します。[root@host]# virt-viewer rhel7
インスタンスを設定します。
- インストーラーの初期ブートメニューで、Install Red Hat Enterprise Linux 7 を選択します。
- 適切な 言語 および キーボード オプションを選択します。
- インストールに使用するデバイス種別を尋ねるプロンプトが表示されたら、自動検出したインストールメディア を選択します。
- インストール先を尋ねるプロンプトが表示されたら、ローカルの標準ディスク を選択します。その他のストレージタイプオプションには、自動設定のパーティション設定 を選択します。
- ソフトウェアのオプションには、最小限のインストール を選択します。
- ネットワークとホスト名の設定では、ネットワークに eth0 を選択し、デバイスのホスト名を指定します。デフォルトのホスト名は localhost.localdomain です。
root パスワード フィールドにパスワードを入力し、確認 フィールドに同じパスワードをもう一度入力します。
- 結果
- インストールプロセスが完了すると、完了しました ! の画面が表示されます。
- インストールが完了した後には、インスタンスを再起動して、root ユーザーとしてログインします。
/etc/sysconfig/network-scripts/ifcfg-eth0
ファイルを編集して、以下の値のみが記載されている状態にします。TYPE=Ethernet DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no
- マシンを再起動します。
コンテンツ配信ネットワークにマシンを登録します。
# sudo subscription-manager register # sudo subscription-manager attach --pool=Valid-Pool-Number-123456 # sudo subscription-manager repos --enable=rhel-7-server-rpms
システムを更新します。
# dnf -y update
cloud-init
パッケージをインストールします。# dnf install -y cloud-utils-growpart cloud-init
/etc/cloud/cloud.cfg
設定ファイルを編集して、cloud_init_modules
の下に以下を追加します。- resolv-conf
resolv-conf
オプションは、インスタンスの初回起動時にresolv.conf
を自動的に設定します。このファイルには、nameservers
、domain
、その他のオプションなどのインスタンスに関連した情報が記載されています。/etc/sysconfig/network
に以下の行を追加し、EC2 メタデータサービスへのアクセスで問題が発生するのを回避します。NOZEROCONF=yes
コンソールメッセージが Dashboard の ログ タブおよび
nova console-log
の出力に表示されるようにするには、以下のブートオプションを/etc/default/grub
ファイルに追記します。GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
grub2-mkconfig
コマンドを実行します。# grub2-mkconfig -o /boot/grub2/grub.cfg
以下のような出力が表示されます。
Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-229.7.2.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-229.7.2.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-121.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-121.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-b82a3044fb384a3f9aeacf883474428b Found initrd image: /boot/initramfs-0-rescue-b82a3044fb384a3f9aeacf883474428b.img done
インスタンスの登録を解除して、作成されるイメージにこのインスタンスのサブスクリプション情報が含まれないようにします。
# subscription-manager repos --disable=* # subscription-manager unregister # dnf clean all
インスタンスの電源をオフにします。
# poweroff
virt-sysprep
コマンドでイメージのリセットおよびクリーニングをして、問題なくインスタンスの作成に使用できるようにします。[root@host]# virt-sysprep -d rhel7
ディスクイメージ内の空き容量をホスト内の空き容量に戻して、イメージサイズを縮小します。
[root@host]# virt-sparsify --compress /tmp/rhel7.qcow2 rhel7-cloud.qcow2
このコマンドを実行すると、その場所に
rhel7-cloud.qcow2
ファイルが作成されます。
rhel7-cloud.qcow2
イメージファイルを Image サービスにアップロードする準備が整いました。Dashboard を使用してこのイメージを RHOSP デプロイメントにアップロードする方法については、「イメージのアップロード」 を参照してください。
1.2.1.2.2. Red Hat Enterprise Linux 6 イメージの作成
Red Hat Enterprise Linux 6 の ISO ファイルを使用して、QCOW2 形式の Red Hat OpenStack Platform (RHOSP) 互換イメージを手動で作成します。
[root@host]#
プロンプトのすべてのコマンドを、ホストマシン上で実行する必要があります。
virt-install
でインストールを開始します。[root@host]# qemu-img create -f qcow2 rhel6.qcow2 4G [root@host]# virt-install --connect=qemu:///system --network=bridge:virbr0 \ --name=rhel6 --os-type linux --os-variant rhel6 \ --disk path=rhel6.qcow2,format=qcow2,size=10,cache=none \ --ram 4096 --vcpus=2 --check-cpu --accelerate \ --hvm --cdrom=rhel-server-6.8-x86_64-dvd.iso
このコマンドによりインスタンスが起動し、インストールプロセスが開始されます。
注記インスタンスが自動的に起動しない場合には、
virt-viewer
のコマンドを実行して、コンソールを確認します。[root@host]# virt-viewer rhel6
インスタンスを設定します。
インストーラーの初期ブートメニューで Install or upgrade an existing system を選択し、インストールの指示に従います。デフォルト値を受け入れます。
ディスクインストーラーでは、インストール前にインストールメディアをテストするオプションを利用することができます。テストを実行するには OK を、テストを行わずに続行するには Skip を選択します。
- 適切な 言語 および キーボード オプションを選択します。
- インストールに使用するデバイス種別を尋ねるプロンプトが表示されたら、基本ストレージデバイス を選択します。
-
デバイスのホスト名を指定します。デフォルトのホスト名は
localhost.localdomain
です。 -
タイムゾーン と
root
パスワードを設定します。 - Which type of installation would you like? のウィンドウのオプションから、ディスクの空き容量に応じて必要なインストールの種別を選択します。
- SSH サーバーをインストールする 基本サーバー インストールを選択します。
- インストールプロセスが完了し、おめでとうございます。Red Hat Enterprise Linux のインストールが完了しました。の画面が表示されます。
-
インスタンスを再起動して、
root
ユーザーとしてログインします。 /etc/sysconfig/network-scripts/ifcfg-eth0
ファイルを編集して、以下の値のみが記載されている状態にします。TYPE=Ethernet DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no
- マシンを再起動します。
コンテンツ配信ネットワークにマシンを登録します。
# sudo subscription-manager register # sudo subscription-manager attach --pool=Valid-Pool-Number-123456 # sudo subscription-manager repos --enable=rhel-6-server-rpms
システムを更新します。
# dnf -y update
cloud-init
パッケージをインストールします。# dnf install -y cloud-utils-growpart cloud-init
/etc/cloud/cloud.cfg
設定ファイルを編集し、cloud_init_modules
の下に以下の内容を追加します。- resolv-conf
resolv-conf
オプションは、インスタンスの初回起動時にresolv.conf
設定ファイルを自動的に設定します。このファイルには、nameservers
、domain
、その他のオプションなどのインスタンスに関連した情報が記載されています。ネットワークの問題が発生するのを防ぐために、
/etc/udev/rules.d/75-persistent-net-generator.rules
ファイルを作成します。# echo "#" > /etc/udev/rules.d/75-persistent-net-generator.rules
これにより、
/etc/udev/rules.d/70-persistent-net.rules
ファイルが作成されるのを防ぎます。/etc/udev/rules.d/70-persistent-net.rules
が作成されてしまうと、スナップショットからのブート時にネットワークが適切に機能しなくなる可能性があります (ネットワークインターフェイスがeth0
ではなくeth1
として作成され、IP アドレスが割り当てられません)。/etc/sysconfig/network
に以下の行を追加し、EC2 メタデータサービスへのアクセスで問題が発生するのを回避します。NOZEROCONF=yes
コンソールメッセージが Dashboard の ログ タブおよび
nova console-log
の出力に表示されるようにするには、以下のブートオプションを/etc/grub.conf
ファイルに追記します。console=tty0 console=ttyS0,115200n8
仮想マシンの登録を解除して、作成されるイメージにこのインスタンスと同じサブスクリプション情報が含まれないようにします。
# subscription-manager repos --disable=* # subscription-manager unregister # dnf clean all
インスタンスの電源をオフにします。
# poweroff
virt-sysprep
コマンドでイメージのリセットおよびクリーニングをして、問題なくインスタンスの作成に使用できるようにします。[root@host]# virt-sysprep -d rhel6
virt-sparsify
コマンドを使用してイメージのサイズを縮小します。このコマンドにより、ディスクイメージ内の空き容量は、ホスト内の空き容量に戻ります。[root@host]# virt-sparsify --compress rhel6.qcow2 rhel6-cloud.qcow2
このコマンドを実行すると、その場所に新しい
rhel6-cloud.qcow2
ファイルが作成されます。注記インスタンスに適用されているフレーバーのディスクスペースに応じて、イメージをベースとするインスタンスのパーティションを手動でリサイズする必要があります。
rhel6-cloud.qcow2
イメージファイルを Image サービスにアップロードする準備が整いました。Dashboard を使用してこのイメージを RHOSP デプロイメントにアップロードする方法については、「イメージのアップロード」 を参照してください。
1.2.1.2.3. Windows イメージの作成
Windows の ISO ファイルを使用して、QCOW2 形式の Red Hat OpenStack Platform (RHOSP) 互換イメージを手動で作成します。
[root@host]#
プロンプトのすべてのコマンドを、ホストマシン上で実行する必要があります。
手順
virt-install
でインストールを開始します。[root@host]# virt-install --name=<name> \ --disk size=<size> \ --cdrom=<path> \ --os-type=windows \ --network=bridge:virbr0 \ --graphics spice \ --ram=<ram>
virt-install
パラメーターの以下の値を置き換えます。- <name>: Windows インスタンスの名前
- size: ディスクのサイズ (GB)
- path: Windows のインストール ISO ファイルへのパス
RAM: 要求するメモリー容量 (MB)
注記--os-type=windows
パラメーターにより、Windows ゲストのクロックが正しく設定され、Hyper-V エンライトメント機能が有効化されるようになります。Image サービスにイメージをアップロードする前に、イメージメタデータにos_type=windows
を設定する必要もあります。
デフォルトでは、
virt-install
は/var/lib/libvirt/images/
<name>
.qcow2
としてゲストイメージを保存します。ゲストイメージを別の場所に保存する場合は、--disk
オプションのパラメーターを変更します。--disk path=<filename>,size=<size>
<filename> を、インスタンスイメージを保存するファイルの名前 (およびオプションでそのパス) に置き換えます。たとえば、
path=win8.qcow2,size=8
は現在の作業ディレクトリーにwin8.qcow2
という名前の 8 GB ファイルを作成します。ヒントゲストが自動的に起動しない場合には、
virt-viewer
のコマンドを実行して、コンソールを確認します。[root@host]# virt-viewer <name>
Windows のインストール方法に関する詳細は、該当する Microsoft のドキュメントを参照してください。
-
新規インストールした Windows システムで仮想化ハードウェアを使用できるようにするには、VirtIO ドライバーをインストールしなければならない場合があります。そのためには、まずイメージをインストールし、それを CD-ROM ドライブとして Windows インスタンスにアタッチする必要があります。
virtio-win
パッケージをインストールするには、インスタンスに VirtIO ISO イメージを追加して、VirtIO ドライバーをインストールする必要があります。詳細については、仮想化の設定および管理 の Windows 仮想マシン用の KVM 準仮想化ドライバーのインストール を参照してください。 Windows システムで Cloudbase-Init をダウンロード、実行して、設定を完了します。Cloudbase-Init のインストールの最後に、Run Sysprep と Shutdown チェックボックスを選択します。
Sysprep
ツールは、特定の Microsoft サービスで使用する OS ID を生成して、ゲストを一意にします。重要Red Hat は Cloudbase-Init に関するテクニカルサポートは提供しません。問題が発生した場合は、Cloudbase Solutions に連絡する を参照してください。
Windows システムがシャットダウンしたら、<name>.qcow2
イメージファイルを Image サービスにアップロードすることができます。Dashboard またはコマンドラインを使用してこのイメージを RHOSP デプロイメントにアップロードする方法については、「イメージのアップロード」 を参照してください。
libosinfo データ
Compute サービスでは、libosinfo データを使用してデフォルトのデバイスモデルを設定する操作が非推奨になりました。これに代わって、以下のイメージメタデータ属性を使用して、インスタンス用の最適な仮想ハードウェアを設定します。
-
os_distro
-
os_version
-
hw_cdrom_bus
-
hw_disk_bus
-
hw_scsi_model
-
hw_vif_model
-
hw_video_model
-
hypervisor_type
これらのメタデータプロパティーの詳細については、イメージ設定パラメーター を参照してください。
1.2.2. イメージのアップロード
- Dashboard で プロジェクト > コンピュート > イメージ を選択します。
- イメージの作成 をクリックします。
- 各フィールドに値を入力し、イメージの作成 をクリックします。
フィールド | 説明 |
---|---|
名前 | イメージの名前。そのプロジェクト内で一意な名前にする必要があります。 |
説明 | イメージを識別するための簡単な説明 |
イメージソース | イメージソース: イメージの場所 または イメージファイル。ここで選択したオプションに応じて次のフィールドが表示されます。 |
イメージの場所またはイメージファイル |
|
形式 | イメージの形式 (例: qcow2) |
アーキテクチャー | イメージのアーキテクチャー。たとえば 32 ビットのアーキテクチャーには i686、64 ビットのアーキテクチャーには x86_64 を使用します。 |
最小ディスク (GB) | イメージのブートに必要な最小のディスクサイズ。このフィールドに値が指定されていない場合には、デフォルト値は 0 です (最小値なし)。 |
最小メモリー (MB) | イメージのブートに必要な最小のメモリーサイズ。このフィールドに値が指定されていない場合には、デフォルト値は 0 です (最小値なし)。 |
パブリック | このチェックボックスを選択した場合には、プロジェクトにアクセスできる全ユーザーにイメージが公開されます。 |
保護 | このチェックボックスを選択した場合には、特定のパーミッションのあるユーザーのみがこのイメージを削除できるようになります。 |
イメージが正常にアップロードされるとそのステータスが active
になり、イメージが使用可能であることを示します。Image サービスは、アップロードの開始時に使用した Identity サービストークンのライフタイムよりもアップロードの所要時間が長くかかる大容量のイメージも処理することができる点に注意してください。これは、アップロードが完了してイメージのステータスが更新される際に、新しいトークンを取得して使用できるように、Identity サービスは最初に Identity サービスとのトラストを作成するためです。
glance image-create
コマンドに property
のオプションを指定して実行する方法でイメージをアップロードすることもできます。コマンドラインで操作を行った方が、より多くの値を使用することができます。完全なリストについては、付録A イメージの設定パラメーター を参照してください。
1.2.3. イメージを更新します。
- Dashboard で プロジェクト > コンピュート > イメージ を選択します。
リストから イメージの編集 をクリックします。
注記イメージの編集 オプションは、
admin
ユーザーとしてログインした場合にのみ使用することができます。demo
ユーザーとしてログインした場合には、インスタンスの起動 または ボリュームの作成 のオプションを使用することができます。- フィールドを更新し、イメージの更新 をクリックします。次の値を更新することができます (名前、説明、カーネル ID、RAM ディスク ID、アーキテクチャー、形式、最小ディスク、最小メモリー、パブリック、保護)。
- ドロップダウンメニューをクリックして メタデータの更新 オプションを選択します。
- 左のコラムから右のコラムに項目を追加して、メタデータを指定します。左のコラムには、Image サービスのメタデータカタログからのメタデータの定義が含まれています。その他 を選択して、任意のキーを使用してメタデータを追加し、完了したら 保存 をクリックします。
glance image-update
コマンドに property
オプションを指定して実行する方法でイメージを更新することもできます。コマンドラインで操作を行った方が、より多くの値を使用することができます。完全なリストは、付録A イメージの設定パラメーター を参照してください。
1.2.4. イメージのインポート
次の 2 つの方法のいずれかを使用して、Image サービス (glance) にイメージをインポートできます。
-
web-download
を使用して、URI からイメージをインポートします。 -
ローカルファイルシステムからイメージをインポートするには、
glance-direct
を使用します。
web-download
メソッドはデフォルトで有効化されています。クラウド管理者がインポート方法を設定します。利用可能なインポートオプションを一覧表示するには、glance import-info
コマンドを実行します。
1.2.4.1. リモート URI からのイメージのインポート
web-download
メソッドを使用して、リモートの URI からイメージをコピーすることができます。
イメージを作成して、インポートするイメージの URI を指定します。
$ glance image-create-via-import \ --container-format <CONTAINER FORMAT> \ --disk-format <DISK-FORMAT> \ --name <NAME> \ --import-method web-download \ --uri <URI>
-
<CONTAINER FORMAT>
は、イメージに設定するコンテナー形式 (None、ami、ari、aki、bare、ovf、ova、docker) に置き換えます。 -
<DISK-FORMAT>
は、イメージに設定しているディスクフォーマット (None、ami、ari、aki、vhd、vhdx、vmdk、raw、qcow2、vdi、iso、ploop) に置き換えます。 -
<NAME>
は、イメージのわかりやすい名前に置き換えます。 -
<URI>
は、イメージの URI に置き換えます。
-
glance image-show <IMAGE_ID>
コマンドを使用して、イメージの可用性を確認できます。-
<IMAGE_ID>
は、イメージの作成時に指定した ID に置き換えます。
-
Image サービスの web download
メソッドでは、2 段階のプロセスでインポートを実施します。
-
Web ダウンロード
方式では、イメージレコードが作成されます。 -
Web ダウンロード
メソッドは、指定された URI からイメージを取得します。
URI は、オプションの拒否リストおよび許可リストのフィルタリングの対象となります。
Image Property Injection プラグインにより、メタデータ属性をイメージに注入することができます。注入されたこれらの属性により、イメージインスタンスを起動するコンピュートノードが決定されます。
1.2.4.2. ローカルボリュームからのイメージのインポート
glance-direct
メソッドは、イメージレコードを作成し、それによりイメージ ID が生成されます。イメージがローカルボリュームから Image サービスにアップロードされるとステージングエリアに保管され、設定されているチェックに合格した後にアクティブとなります。高可用性 (HA) 設定で使用される場合には、glance-direct
メソッドには共通のステージングエリアが必要です。
HA 環境では、glance-direct
メソッドを使用したイメージのアップロードは、共通のステージエリアがない場合には失敗します。HA の アクティブ/アクティブ環境では、API コールは複数の Image サービスのコントローラーに分散されます。ダウンロード API コールは、イメージをアップロードする API コールとは別のコントローラーに送信することが可能です。
glance-direct メソッドは、3 つの異なるコールを使用して、イメージをインポートします。
-
glance image-create
-
glance image-stage
-
glance image-import
glance image-create-via-import
コマンドを使用すると、これらの 3 つのコールを 1 つのコマンドで実行することができます。
$ glance image-create-via-import --container-format <CONTAINER FORMAT> --disk-format <DISK-FORMAT> --name <NAME> --file </PATH/TO/IMAGE>
-
<CONTAINER FORMAT>
、<DISK-FORMAT>
、<NAME>
、および</PATH/TO/IMAGE>
は、イメージに関連する値に置き換えます。
イメージがステージングエリアからバックエンドの場所に移動すると、そのイメージはリストされます。ただし、イメージがアクティブになるには、多少時間がかかる場合があります。
glance image-show <IMAGE_ID>
コマンドを使用して、イメージの可用性を確認できます。
-
<IMAGE_ID
は、イメージの作成時に指定した ID に置き換えます。
1.2.5. イメージを削除します。
- Dashboard で プロジェクト > コンピュート > イメージ を選択します。
- 削除するイメージを選択し、イメージの削除 ボタンをクリックします。
1.2.6. イメージの表示または非表示
ユーザーに表示される通常のリストからパブリックイメージを非表示にすることができます。たとえば、廃止された CentOS 7 イメージを非表示にし、最新バージョンだけを表示してユーザーエクスペリエンスをシンプル化することができます。ユーザーは、非表示のイメージを検出して使用することができます。
イメージを非表示にするには、以下をコマンドを実行します。
glance image-update <image_id> --hidden 'true'
非表示のイメージを作成するには、glance image-create
コマンドに --hidden
引数を追加します。
イメージの非表示を解除するには、以下のコマンドを実行します。
glance image-update <image_id> --hidden 'false'
1.2.8. イメージ変換の有効化
GlanceImageImportPlugins
パラメーターを有効にすると、QCOW2 イメージをアップロードすることができ、Image サービスはそのイメージを RAW に変換できます。
Red Hat Ceph Storage RBD を使用してイメージを保存して Nova インスタンスをブートすると、イメージの変換は自動的に有効になります。
イメージの変換を有効にするには、以下のパラメーター値が含まれる環境ファイルを作成し、-e
オプションを使用して新しい環境ファイルを openstack overcloud deploy
コマンドに追加します。
+
parameter_defaults: GlanceImageImportPlugins:'image_conversion'
1.2.9. RAW 形式へのイメージの変換
Red Hat Ceph Storage は QCOW2 イメージを保管することはできますが、そのイメージを使用して仮想マシン (VM) のディスクをホストすることはできません。
アップロードした QCOW2 イメージから仮想マシンを作成する場合には、コンピュートノードはイメージをダウンロードして RAW に変換し、それを Ceph にアップロードし直してからでないと使用することができません。このプロセスは仮想マシンの作成時間に影響を及ぼします (特に、並行して仮想マシンを作成する場合)。
たとえば、複数の仮想マシンを同時に作成する場合には、Ceph クラスターへの変換済みイメージのアップロードが、すでに実行中の負荷に影響を及ぼす可能性があります。IOPS のこれらの負荷に対するリソースがアップロードプロセスにより枯渇し、ストレージの反応が遅くなる場合があります。
Ceph において仮想マシンをより効率的に起動するには (一時バックエンドまたはボリュームからの起動)、glance イメージの形式を RAW にする必要があります。
手順
イメージを RAW に変換すると、イメージサイズが元の QCOW2 イメージファイルより大きくなる場合があります。最終的な RAW イメージのサイズを確認するには、変換前に以下のコマンドを実行します。
qemu-img info <image>.qcow2
イメージを QCOW2 から RAW 形式に変換します。
qemu-img convert -p -f qcow2 -O raw <original qcow2 image>.qcow2 <new raw image>.raw
1.2.9.1. Image サービス (glance) でのディスクフォーマットの設定
GlanceDiskFormats
パラメーターを使用して、ディスクフォーマットを有効または拒否するように Image サービス (glance) を設定することができます。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 source コマンドでアンダークラウドの認証情報ファイルを読み込みます。
$ source ~/stackrc
環境ファイルに
GlanceDiskFormats
パラメーターを追加します (例:glance_disk_formats.yaml
)。parameter_defaults: GlanceDiskFormats: - <disk_format>
たとえば、RAW および ISO ディスクフォーマットだけを有効にするには、以下の設定を使用します。
parameter_defaults: GlanceDiskFormats: - raw - iso
QCOW2 ディスクイメージを拒否するには、以下の設定例を使用します。
parameter_defaults: GlanceDiskFormats: - raw - iso - aki - ari - ami
ご自分の環境に該当するその他の環境ファイルと共に、新しい設定が含まれる環境ファイルを
openstack overcloud deploy
コマンドに追加します。$ openstack overcloud deploy --templates \ -e <overcloud_environment_files> \ -e <new_environment_file> \ …
-
<overcloud_environment_files>
をデプロイメントに追加する環境ファイルのリストに置き換えます。 -
<new_environment_file>
を新しい設定が含まれる環境ファイルに置き換えます。
-
RHOSP で利用可能なディスクフォーマットの詳細は、1章Image サービス (glance) を参照してください。
1.2.10. RAW 形式でのイメージの保存
以前に作成したイメージを RAW 形式で保存するには、GlanceImageImportPlugins
パラメーターを有効にして以下のコマンドを実行します。
$ glance image-create-via-import \ --disk-format qcow2 \ --container-format bare \ --name NAME \ --visibility public \ --import-method web-download \ --uri http://server/image.qcow2
-
--name
:NAME
をイメージ名に置き換えます。この名前がglance image-list
に表示されます。 -
--uri
:http://server/image.qcow2
を QCOW2 イメージの場所およびファイル名に置き換えます。
このコマンド例では、イメージレコードを作成し、web-download
メソッドを使用してそのイメージレコードをインポートします。glance-api は、インポートプロセス中に --uri
で定義した場所からイメージをダウンロードします。web-download
が利用できない場合、glanceclient
はイメージデータを自動的にダウンロードすることができません。利用可能なイメージのインポート方法をリスト表示するには、glance import-info
コマンドを実行します。