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 TechNet 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]# プロンプトのすべてのコマンドを、ホストマシン上で実行する必要があります。

  1. 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
  2. インスタンスを設定します。

    1. インストーラーの初期ブートメニューで、Install Red Hat Enterprise Linux 7 を選択します。
    2. 適切な 言語 および キーボード オプションを選択します。
    3. インストールに使用するデバイス種別を尋ねるプロンプトが表示されたら、自動検出したインストールメディア を選択します。
    4. インストール先を尋ねるプロンプトが表示されたら、ローカルの標準ディスク を選択します。その他のストレージタイプオプションには、自動設定のパーティション設定 を選択します。
    5. ソフトウェアのオプションには、最小限のインストール を選択します。
    6. ネットワークとホスト名の設定では、ネットワークに eth0 を選択し、デバイスのホスト名を指定します。デフォルトのホスト名は localhost.localdomain です。
    7. root パスワード フィールドにパスワードを入力し、確認 フィールドに同じパスワードをもう一度入力します。

      結果
      インストールプロセスが完了すると、完了しました ! の画面が表示されます。
  3. インストールが完了した後には、インスタンスを再起動して、root ユーザーとしてログインします。
  4. /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集して、以下の値のみが記載されている状態にします。

    TYPE=Ethernet
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    NM_CONTROLLED=no
  5. マシンを再起動します。
  6. コンテンツ配信ネットワークにマシンを登録します。

    # sudo subscription-manager register
    # sudo subscription-manager attach --pool=Valid-Pool-Number-123456
    # sudo subscription-manager repos --enable=rhel-7-server-rpms
  7. システムを更新します。

    # dnf -y update
  8. cloud-init パッケージをインストールします。

    # dnf install -y cloud-utils-growpart cloud-init
  9. /etc/cloud/cloud.cfg 設定ファイルを編集して、cloud_init_modules の下に以下を追加します。

    - resolv-conf

    resolv-conf オプションは、インスタンスの初回起動時に resolv.conf を自動的に設定します。このファイルには、nameserversdomain、その他のオプションなどのインスタンスに関連した情報が記載されています。

  10. /etc/sysconfig/network に以下の行を追加し、EC2 メタデータサービスへのアクセスで問題が発生するのを回避します。

    NOZEROCONF=yes
  11. コンソールメッセージが Dashboard の ログ タブおよび nova console-log の出力に表示されるようにするには、以下のブートオプションを /etc/default/grub ファイルに追記します。

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
  12. 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
  13. インスタンスの登録を解除して、作成されるイメージにこのインスタンスのサブスクリプション情報が含まれないようにします。

    # subscription-manager repos --disable=*
    # subscription-manager unregister
    # dnf clean all
  14. インスタンスの電源をオフにします。

    # poweroff
  15. virt-sysprep コマンドでイメージのリセットおよびクリーニングをして、問題なくインスタンスの作成に使用できるようにします。

    [root@host]# virt-sysprep -d rhel7
  16. ディスクイメージ内の空き容量をホスト内の空き容量に戻して、イメージサイズを縮小します。

    [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]# プロンプトのすべてのコマンドを、ホストマシン上で実行する必要があります。

  1. 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
  2. インスタンスを設定します。

    1. インストーラーの初期ブートメニューで Install or upgrade an existing system を選択し、インストールの指示に従います。デフォルト値を受け入れます。

      ディスクインストーラーでは、インストール前にインストールメディアをテストするオプションを利用することができます。テストを実行するには OK を、テストを行わずに続行するには Skip を選択します。

    2. 適切な 言語 および キーボード オプションを選択します。
    3. インストールに使用するデバイス種別を尋ねるプロンプトが表示されたら、基本ストレージデバイス を選択します。
    4. デバイスのホスト名を指定します。デフォルトのホスト名は localhost.localdomain です。
    5. タイムゾーンroot パスワードを設定します。
    6. Which type of installation would you like? のウィンドウのオプションから、ディスクの空き容量に応じて必要なインストールの種別を選択します。
    7. SSH サーバーをインストールする 基本サーバー インストールを選択します。
    8. インストールプロセスが完了し、おめでとうございます。Red Hat Enterprise Linux のインストールが完了しました。の画面が表示されます。
  3. インスタンスを再起動して、root ユーザーとしてログインします。
  4. /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集して、以下の値のみが記載されている状態にします。

    TYPE=Ethernet
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    NM_CONTROLLED=no
  5. マシンを再起動します。
  6. コンテンツ配信ネットワークにマシンを登録します。

    # sudo subscription-manager register
    # sudo subscription-manager attach --pool=Valid-Pool-Number-123456
    # sudo subscription-manager repos --enable=rhel-6-server-rpms
  7. システムを更新します。

    # dnf -y update
  8. cloud-init パッケージをインストールします。

    # dnf install -y cloud-utils-growpart cloud-init
  9. /etc/cloud/cloud.cfg 設定ファイルを編集し、cloud_init_modules の下に以下の内容を追加します。

    - resolv-conf

    resolv-conf オプションは、インスタンスの初回起動時に resolv.conf 設定ファイルを自動的に設定します。このファイルには、nameserversdomain、その他のオプションなどのインスタンスに関連した情報が記載されています。

  10. ネットワークの問題が発生するのを防ぐために、/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 アドレスが割り当てられません)。

  11. /etc/sysconfig/network に以下の行を追加し、EC2 メタデータサービスへのアクセスで問題が発生するのを回避します。

    NOZEROCONF=yes
  12. コンソールメッセージが Dashboard の ログ タブおよび nova console-log の出力に表示されるようにするには、以下のブートオプションを /etc/grub.conf ファイルに追記します。

    console=tty0 console=ttyS0,115200n8
  13. 仮想マシンの登録を解除して、作成されるイメージにこのインスタンスと同じサブスクリプション情報が含まれないようにします。

    # subscription-manager repos --disable=*
    # subscription-manager unregister
    # dnf clean all
  14. インスタンスの電源をオフにします。

    # poweroff
  15. virt-sysprep コマンドでイメージのリセットおよびクリーニングをして、問題なくインスタンスの作成に使用できるようにします。

    [root@host]# virt-sysprep -d rhel6
  16. 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]# プロンプトのすべてのコマンドを、ホストマシン上で実行する必要があります。

手順

  1. 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 を設定する必要もあります。

  2. デフォルトでは、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 のドキュメントを参照してください。

  3. 新規インストールした Windows システムで仮想化ハードウェアを使用できるようにするには、virtio ドライバーをインストールしなければならない場合があります。そのためには、まずイメージをインストールし、それを CD-ROM ドライブとして Windows インスタンスにアタッチする必要があります。virtio-win パッケージをインストールするには、インスタンスに virtio ISO イメージを追加して、virtio ドライバーをインストールする必要があります。詳細については、仮想化の設定および管理Windows 仮想マシン用の KVM 準仮想化ドライバーのインストール を参照してください。
  4. Windows システムで Cloudbase-Init をダウンロード、実行して、設定を完了します。Cloudbase-Init のインストールの最後に、Run SysprepShutdown チェックボックスを選択します。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

これらのメタデータ属性についての詳細は、付録A イメージの設定パラメーターを参照してください。

1.2.2. イメージのアップロード

  1. Dashboard で プロジェクト > コンピュート > イメージ を選択します。
  2. イメージの作成 をクリックします。
  3. 各フィールドに値を入力し、イメージの作成 をクリックします。

表1.1 イメージのオプション

フィールド説明

名前

イメージの名前。そのプロジェクト内で一意な名前にする必要があります。

説明

イメージを識別するための簡単な説明

イメージソース

イメージソース: イメージの場所 または イメージファイル。ここで選択したオプションに応じて次のフィールドが表示されます。

イメージの場所またはイメージファイル

  • イメージの場所の URL を指定するには、イメージの場所 オプションを選択します。
  • ローカルディスクからイメージをアップロードするには、イメージファイル オプションを選択します。

形式

イメージの形式 (例: qcow2)

アーキテクチャー

イメージのアーキテクチャー。たとえば 32 ビットのアーキテクチャーには i686、64 ビットのアーキテクチャーには x86_64 を使用します。

最小ディスク (GB)

イメージのブートに必要な最小のディスクサイズ。このフィールドに値が指定されていない場合には、デフォルト値は 0 です (最小値なし)。

最小メモリー (MB)

イメージのブートに必要な最小のメモリーサイズ。このフィールドに値が指定されていない場合には、デフォルト値は 0 です (最小値なし)。

パブリック

このチェックボックスを選択した場合には、プロジェクトにアクセスできる全ユーザーにイメージが公開されます。

保護

このチェックボックスを選択した場合には、特定のパーミッションのあるユーザーのみがこのイメージを削除できるようになります。

イメージが正常にアップロードされるとそのステータスが active になり、イメージが使用可能であることを示します。Image サービスは、アップロードの開始時に使用した Identity サービストークンのライフタイムよりもアップロードの所要時間が長くかかる大容量のイメージも処理することができる点に注意してください。これは、アップロードが完了してイメージのステータスが更新される際に、新しいトークンを取得して使用できるように、Identity サービスは最初に Identity サービスとのトラストを作成するためです。

注記

glance image-create コマンドに property のオプションを指定して実行する方法でイメージをアップロードすることもできます。コマンドラインで操作を行った方が、より多くの値を使用することができます。完全なリストは、イメージの設定パラメーター を参照してください。

1.2.3. イメージの更新

  1. Dashboard で プロジェクト > コンピュート > イメージ を選択します。
  2. リストから イメージの編集 をクリックします。

    注記

    イメージの編集 オプションは、admin ユーザーとしてログインした場合にのみ使用することができます。demo ユーザーとしてログインした場合には、インスタンスの起動 または ボリュームの作成 のオプションを使用することができます。

  3. フィールドを更新し、イメージの更新 をクリックします。次の値を更新することができます (名前、説明、カーネル ID、RAM ディスク ID、アーキテクチャー、形式、最小ディスク、最小メモリー、パブリック、保護)。
  4. ドロップダウンメニューをクリックして メタデータの更新 オプションを選択します。
  5. 左のコラムから右のコラムに項目を追加して、メタデータを指定します。左のコラムには、Image サービスのメタデータカタログからのメタデータの定義が含まれています。その他 を選択して、任意のキーを使用してメタデータを追加し、完了したら 保存 をクリックします。
注記

glance image-update コマンドに property オプションを指定して実行する方法でイメージを更新することもできます。コマンドラインで操作を行った方が、より多くの値を使用することができます。完全なリストは、イメージの設定パラメーター を参照してください。

1.2.4. イメージのインポート

次の 2 つの方法のいずれかを使用して、Image サービス (glance) にイメージをインポートできます。

  • web-download を使用して、URI からイメージをインポートします。
  • ローカルファイルシステムからイメージをインポートするには、glance-direct を使用します。

web-download メソッドはデフォルトで有効化されています。クラウド管理者がインポート方法を設定します。利用可能なインポートオプションを一覧表示するには、glance import-info コマンドを実行します。

1.2.4.1. リモート URI からのイメージのインポート

web-download メソッドを使用して、リモートの URI からイメージをコピーすることができます。

  1. イメージを作成して、インポートするイメージの 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 に置き換えます。
  2. glance image-show <IMAGE_ID> コマンドを使用して、イメージの可用性を確認できます。

    • <IMAGE_ID> は、イメージの作成時に指定した ID に置き換えます。

Image サービスの web download メソッドでは、2 段階のプロセスでインポートを実施します。

  1. Web ダウンロード 方式では、イメージレコードが作成されます。
  2. 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. イメージを削除します。

  1. Dashboard で プロジェクト > コンピュート > イメージ を選択します。
  2. 削除するイメージを選択し、イメージの削除 ボタンをクリックします。

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.7. 非表示にしたイメージの表示

非表示にしたイメージをリスト表示するには、以下のコマンドを実行します。

glance image-list --hidden 'true'

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 にする必要があります。

手順

  1. イメージを RAW に変換すると、イメージサイズが元の QCOW2 イメージファイルより大きくなる場合があります。最終的な RAW イメージのサイズを確認するには、変換前に以下のコマンドを実行します。

    qemu-img info <image>.qcow2
  2. イメージを 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) を設定することができます。

手順

  1. アンダークラウドホストに stack ユーザーとしてログインします。
  2. source コマンドでアンダークラウドの認証情報ファイルを読み込みます。

    $ source ~/stackrc
  3. 環境ファイルに 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
  4. ご自分の環境に該当するその他の環境ファイルと共に、新しい設定が含まれる環境ファイルを openstack overcloud deploy コマンドに追加します。

    $ openstack overcloud deploy --templates \
      -e <overcloud_environment_files> \
      -e <new_environment_file> \
      …
    • <overcloud_environment_files> をデプロイメントに追加する環境ファイルのリストに置き換えます。
    • <new_environment_file> を新しい設定が含まれる環境ファイルに置き換えます。

RHOSP で利用可能なディスクフォーマットの詳細は、Image サービス を参照してください。

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 コマンドを実行します。