0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenShift VirtualizationでTrident + ONTAP利用③【Virtualizationの導入とVM作成】

0
Last updated at Posted at 2026-06-16

はじめに

本記事ではOpenShiftへのVirtualizationの導入と仮想マシン作成について記載します。

過去の記事の続きとなるので、事前にONTAPを利用したTridentの設定やStorageClass、 VolumeSnapshotClassは作成済が前提となります。

参考となるベストプラクティスがありますので、詳細はリンク先をご確認下さい。

image.png

何をしたい?できる?

  • Virtualization機能の導入
  • virtctlの導入
  • 仮想マシンの作成

記事における環境情報

本記事では、以下の環境で実施した内容となります。
OSやモジュールは以下の構成としています。

  • ONTAP 9.18.1
  • NetApp Trident 26.02.1
  • Windows Server 2025 Hyper-V環境
  • Red Hat Enterprise Linux 9.8
  • OpenShift 4.21.17

環境のイメージとしては以下の通りです。
image.png

設定手順

設定の流れとしては以下のような形になります。

  1. OpenShift Virtualizationの導入・設定
  2. virtctlの導入
  3. 仮想マシンの作成

1. OpenShift Virtualizationの導入・設定

1-1. Virtualization機能の導入

OpenShiftのGUI画面にアクセスし、左側の[エコシステム]から[ソフトウェアカタログ]をクリック後に表示された画面でOpenShift Virtualizationと入力し、表示される[OpenShift Virtualization]をクリックします。

qiita-square

表示された画面で[インストール]をクリックします。

qiita-square

詳細入力画面についても変更せずに[インストール]をクリックします
qiita-square

Install完了後に、[HyperConvergedの作成]をクリックします。
qiita-square

表示された画面で、設定値は変更せずに画面下方の[作成]をクリックします。
qiita-square

Installが完了するのを暫く待ちます。
qiita-square

Intallが完了すると、画面左側に仮想化の項目が確認できるようになります。
qiita-square

1-2. デフォルトで使用するStorageClass及びVolumeSnapshotClassの設定

現時点で画面左側の[仮想化]から[カタログ]をクリックしても、[Instance Type]タブ等で"ボリュームが見つかりません"といった表示が確認できます。

qiita-square

StorageClassの設定項目で、デフォルトで使用するStorageClassを指定する事で
仮想マシンのブートに必要なOSイメージを、インターネットから自動でダウンロードし、PVCおよびPVとして追加
されるようになります。

画面左側の[ストレージ]から[StorageClasses]を選択し、表示されたStorageClass右側からデフォルトで使用するものを設定します。
本環境ではiSCSI用に作成したStorageClassを選択します。

qiita-square

次に、ベストプラクティスに従って、画面左側の[ストレージ]から[VolumeSnapshotClasses]を選択しアノテーションの編集から、snapshot.kubevirt.io/is-default-virt-classというキーとtrueという値を追加します。
qiita-square

qiita-square

PVやPVCはOSイメージのダウンロード中は確認できますが、最終的にvolumesnapshotのみが見えるようになります

> oc get volumesnapshot -n openshift-virtualization-os-images
NAME                           READYTOUSE   SOURCEPVC                      SOURCESNAPSHOTCONTENT   RESTORESIZE   SNAPSHOTCLASS   SNAPSHOTCONTENT                                    CREATIONTIME   AGE
centos-stream10-9458ef296b0e   true         centos-stream10-9458ef296b0e                           30Gi          csi-snapclass   snapcontent-f8fd1e34-ac6a-4bef-b598-e6baa06171ab   9m18s          9m19s
centos-stream9-145aa5cda9d9    true         centos-stream9-145aa5cda9d9                            30Gi          csi-snapclass   snapcontent-daa57df3-63f1-4c3d-afe1-73661a7c8d5b   9m15s          9m16s
fedora-1217dcc8c58d            true         fedora-1217dcc8c58d                                    30Gi          csi-snapclass   snapcontent-984f23a4-7df4-4e78-939f-2837e5350f5e   9m42s          9m44s
rhel10-c5b97492a6e3            true         rhel10-c5b97492a6e3                                    30Gi          csi-snapclass   snapcontent-1d0928a8-30be-47ef-8395-6cbff33a237e   7m3s           7m4s
rhel8-c6a08edc555b             true         rhel8-c6a08edc555b                                     30Gi          csi-snapclass   snapcontent-7ce424f3-f683-4e67-8b13-c4d275ef24e0   6m16s          6m16s
rhel9-7005186c23b8             true         rhel9-7005186c23b8                                     30Gi          csi-snapclass   snapcontent-5d5f5c9e-ae23-46d8-b34c-6acd0b5ae378   7m40s          7m41s

ONTAP側から見てもVolumeやSnaphot、LUNが作成されているのが確認できるようになります。

# StorageClassのデフォルト設定実施前の状態
> vol show -vserver iscsi100
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
iscsi100  iscsi100_root
                       aggr1_node2  online     RW          1GB    971.0MB    0%


# StorageClassのデフォルト設定実施後の状態
> vol show -vserver iscsi100
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
iscsi100  iscsi100_root aggr1_node2 online     RW          1GB    970.9MB    0%
iscsi100  trident_pvc_085e79f3_1506_441e_bcaa_8cbf7b15389b aggr1_node1 online RW 33GB 30.57GB  7%
iscsi100  trident_pvc_374dd127_8048_4040_9390_4ed7973eeda7 aggr1_node2 online RW 33GB 31.36GB  4%
iscsi100  trident_pvc_9c8256be_df59_4f5e_b678_144efc252f68 aggr1_node2 online RW 33GB 30.85GB  6%
iscsi100  trident_pvc_b3cc2a3c_3233_4c2a_8000_4d49fb4cbfd4 aggr1_node1 online RW 33GB 32.39GB  1%
iscsi100  trident_pvc_e5643213_9572_46ad_adde_54543da0afa2 aggr1_node1 online RW 33GB 31.54GB  4%
iscsi100  trident_pvc_f2cdfb66_11fa_4080_bbc7_d72e1646faba aggr1_node2 online RW 33GB 30.88GB  6%
7 entries were displayed.


> lun show -vserver iscsi100 -fields path,ostype,size,mapped
vserver  path                                                       size ostype mapped
-------- ---------------------------------------------------------- ---- ------ --------
iscsi100 /vol/trident_pvc_085e79f3_1506_441e_bcaa_8cbf7b15389b/lun0 30GB linux  unmapped
iscsi100 /vol/trident_pvc_374dd127_8048_4040_9390_4ed7973eeda7/lun0 30GB linux  unmapped
iscsi100 /vol/trident_pvc_9c8256be_df59_4f5e_b678_144efc252f68/lun0 30GB linux  unmapped
iscsi100 /vol/trident_pvc_b3cc2a3c_3233_4c2a_8000_4d49fb4cbfd4/lun0 30GB linux  unmapped
iscsi100 /vol/trident_pvc_e5643213_9572_46ad_adde_54543da0afa2/lun0 30GB linux  unmapped
iscsi100 /vol/trident_pvc_f2cdfb66_11fa_4080_bbc7_d72e1646faba/lun0 30GB linux  unmapped
6 entries were displayed.


> snapshot show -vserver iscsi100 -volume trident* -fields snapshot,create-time
vserver  volume                                           snapshot                                      create-time
-------- ------------------------------------------------ --------------------------------------------- ------------------------
iscsi100 trident_pvc_085e79f3_1506_441e_bcaa_8cbf7b15389b snapshot-f8fd1e34-ac6a-4bef-b598-e6baa06171ab Fri Jun 12 16:03:57 2026
iscsi100 trident_pvc_374dd127_8048_4040_9390_4ed7973eeda7 snapshot-5d5f5c9e-ae23-46d8-b34c-6acd0b5ae378 Fri Jun 12 16:05:35 2026
iscsi100 trident_pvc_9c8256be_df59_4f5e_b678_144efc252f68 snapshot-7ce424f3-f683-4e67-8b13-c4d275ef24e0 Fri Jun 12 16:06:59 2026
iscsi100 trident_pvc_b3cc2a3c_3233_4c2a_8000_4d49fb4cbfd4 snapshot-984f23a4-7df4-4e78-939f-2837e5350f5e Fri Jun 12 16:03:33 2026
iscsi100 trident_pvc_e5643213_9572_46ad_adde_54543da0afa2 snapshot-1d0928a8-30be-47ef-8395-6cbff33a237e Fri Jun 12 16:06:12 2026
iscsi100 trident_pvc_f2cdfb66_11fa_4080_bbc7_d72e1646faba snapshot-daa57df3-63f1-4c3d-afe1-73661a7c8d5b Fri Jun 12 16:04:00 2026
6 entries were displayed.

ダウンロードが完了すると[カタログ]からも[ブート元のボリュームの選択]でLinux系のOSが表示されるようになります。
qiita-square

Storageprofileを確認するとCloneを実施する際にCopyではなくてSnapshotを利用する旨やData Import Cron Source FormatがPVCでは無くsnaoshotの記載が確認できます。

> oc describe storageprofile/ontap-san
Name:         ontap-san
Namespace:
(中略)
Spec:
Status:
  Claim Property Sets:
    Access Modes:
      ReadWriteMany
    Volume Mode:                   Block
  Clone Strategy:                  snapshot
  Data Import Cron Source Format:  snapshot
  Provisioner:                     csi.trident.netapp.io
  Snapshot Class:                  csi-snapclass
  Storage Class:                   ontap-san
Events:                            <none>

2. virtctlの導入

virtctlは、仮想マシンを管理するKubeVirtおよびOpenShift Virtualizationを操作するための専用CLIツールとなり、コンソール接続(VNC/シリアル)や仮想マシンの起動・停止・ライブマイグレーションなどが実行できるようになります。

2-1. virtctlのダウンロード

画面左側の[仮想化]から[概要]をクリックし、表示された画面右側の[virtctl コマンドラインユーティリティーのダウンロード]をクリックします。
qiita-square

表示された画面下方から踏み台サーバに合わせたものを選択します。
(本記事だと踏み台サーバはRHELで作成しているの)

qiita-square

qiita-square

2-2. tarを展開

踏み台サーバ上でダウンロードしたものを展開します。

# tarファイルの移動
> pwd
/home/user01/ダウンロード

> mv virtctl.tar.gz /home/user01/work/


# tarファイルの展開
> sudo tar -C /usr/local/bin -xvzf virtctl.tar.gz virtctl
virtctl


# CLIが動作する事の確認
> virtctl
Available Commands:
  addvolume         add a volume to a running VM
  adm               Administrate KubeVirt configuration.
  completion        Generate the autocompletion script for the specified shell
  console           Connect to a console of a virtual machine instance.
  create            Create a manifest for the specified Kind.
  (中略)


# virtctlコマンドの自動補完を有効化(再ログイン後に有効化されます)
> virtctl completion bash > virtctl_bash_completion
> sudo cp virtctl_bash_completion /etc/bash_completion.d/

3. VMの作成

本記事ではFedora VMの作成を実施します。

3-1. テンプレートカタログからの作成

画面左側の[仮想化]から[カタログ]をクリックし、画面情報の[プロジェクト]を選択してから、[テンプレートカタログ]タブを選択し、表示された画面から[Fedora VM]を選択します。

qiita-square

表示された画面下方でVirtualMachine名を管理しやすい名前に変えてから、
[VirtualMachineのカスタマイズ]を選択します。
qiita-square

[Disks]タブを選択し、空のディスクを追加します。
qiita-square

Disk名の指定やサイズ等の指定を実施します。
(ここでは20GiBで作成)

[StorageClass]はiSCSI用が選択されている事を確認します。
qiita-square

画面下方の[VirtualMachineの作成]を選択します。
qiita-square

VMが作成された事を確認します。
qiita-square

VMへの接続はWebコンソールの他に、virtctlを利用する事ができます。
ゲストログイン認証情報はGUIのWebコンソール画面で確認できます。

> virtctl console fedora-001 -n testspace01
Successfully connected to fedora-001 console. Press Ctrl+] or Ctrl+5 to exit console.

fedora-001 login: fedora
Password:


[fedora@fedora-001 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        30G  671M   29G   3% /
devtmpfs        889M     0  889M   0% /dev
tmpfs           934M     0  934M   0% /dev/shm
efivarfs        256K   50K  202K  20% /sys/firmware/efi/efivars
tmpfs           374M  756K  373M   1% /run
none            1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
none            1.0M     0  1.0M   0% /run/credentials/systemd-resolved.service
tmpfs           934M     0  934M   0% /tmp
/dev/vda3        30G  671M   29G   3% /boot
/dev/vda3        30G  671M   29G   3% /home
/dev/vda3        30G  671M   29G   3% /var
/dev/vda2       100M   22M   79M  22% /boot/efi
none            1.0M     0  1.0M   0% /run/credentials/getty@tty1.service
none            1.0M     0  1.0M   0% /run/credentials/serial-getty@ttyS0.service
tmpfs           187M  4.0K  187M   1% /run/user/1000


[fedora@fedora-001 ~]$ sudo fdisk -l /dev/vdc
Disk /dev/vdc: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

3-2. VM作成中及び作成後の状態について

VM作成中にDataVolume (DV) の状態変化を確認すると、以下のようにOS部分のCloneは約4秒程度で完了している事が確認できます。

> oc get dv -w
NAME        				   PHASE   				         PROGRESS   RESTARTS   	AGE
fedora-001                                                                                  0s
dv-fedora-001-add-disk01-7j97wo                                                             0s
fedora-001                                                                                  0s
dv-fedora-001-add-disk01-7j97wo                                                             0s
fedora-001                                                                                  0s
dv-fedora-001-add-disk01-7j97wo   Pending                                                   0s
fedora-001                                                                                  0s
dv-fedora-001-add-disk01-7j97wo   Pending                             N/A                   0s
fedora-001                        CloneScheduled                                            0s
fedora-001                        CloneScheduled                      N/A                   0s
dv-fedora-001-add-disk01-7j97wo   Pending                             N/A                   0s
dv-fedora-001-add-disk01-7j97wo   Pending                             N/A                   0s
fedora-001                        CloneScheduled                      N/A                   1s
fedora-001                        CloneFromSnapshotSourceInProgress   N/A                   1s
dv-fedora-001-add-disk01-7j97wo   Pending                             N/A                   1s
fedora-001                        CloneFromSnapshotSourceInProgress   N/A                   2s
fedora-001                        CloneFromSnapshotSourceInProgress   N/A                   2s
fedora-001                        CloneFromSnapshotSourceInProgress   N/A                   3s
fedora-001                        CloneFromSnapshotSourceInProgress   N/A                   3s
fedora-001                        CloneFromSnapshotSourceInProgress   N/A                   4s
fedora-001                        CloneFromSnapshotSourceInProgress   N/A                   4s
fedora-001                        CloneFromSnapshotSourceInProgress   N/A                   4s
fedora-001                        Succeeded                           100.0%                4s
fedora-001                        Succeeded                           100.0%                4s
dv-fedora-001-add-disk01-7j97wo   ImportScheduled                     N/A                   6s
dv-fedora-001-add-disk01-7j97wo   ImportScheduled                     N/A                   6s
dv-fedora-001-add-disk01-7j97wo   ImportScheduled                     N/A                   6s
dv-fedora-001-add-disk01-7j97wo   ImportInProgress                    N/A                   10s
dv-fedora-001-add-disk01-7j97wo   ImportInProgress                    N/A                   12s
dv-fedora-001-add-disk01-7j97wo   Succeeded                           100.0%                13s
dv-fedora-001-add-disk01-7j97wo   Succeeded                           100.0%                13s
dv-fedora-001-add-disk01-7j97wo   Succeeded                           100.0%                14s

VM作成後はPCやPVCが以下のように確認できます。

>  oc get vm -n testspace01
NAME         AGE   STATUS    READY
fedora-001   26m   Running   True


>  oc get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                         STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
pvc-2fe674b7-6e78-47a6-bb97-b3b37c2804fb   20Gi       RWX            Delete           Bound    testspace01/dv-fedora-001-add-disk01-7j97wo   ontap-san      <unset>                          26m
pvc-c274c48b-2028-4531-a759-43156791e403   30Gi       RWX            Delete           Bound    testspace01/fedora-001                        ontap-san      <unset>                          26m


>  oc get pvc -n testspace01
NAME                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
dv-fedora-001-add-disk01-7j97wo   Bound    pvc-2fe674b7-6e78-47a6-bb97-b3b37c2804fb   20Gi       RWX            ontap-san      <unset>                 27m
fedora-001                        Bound    pvc-c274c48b-2028-4531-a759-43156791e403   30Gi       RWX            ontap-san      <unset>                 27m

ONTAP側からは以下のようにOS ImageがDownLoadされた際に作成されたSnapshotからCloneが利用されている旨が確認できます。(VM作成完了時間は2026/06/16 14:29)

>  lun show -mapped mapped -vserver iscsi100
Vserver   Path                            State   Mapped   Type        Size
--------- ------------------------------- ------- -------- -------- --------
iscsi100  /vol/trident_pvc_2fe674b7_6e78_47a6_bb97_b3b37c2804fb/lun0
                                          online  mapped   linux        20GB
iscsi100  /vol/trident_pvc_c274c48b_2028_4531_a759_43156791e403/lun0
                                          online  mapped   linux        30GB
2 entries were displayed.


> volume clone show -vserver iscsi100 -flexclone trident_pvc_c274c48b_2028_4531_a759_43156791e403

                           Vserver Name: iscsi100
                       FlexClone Volume: trident_pvc_c274c48b_2028_4531_a759_43156791e403
                         FlexClone Type: RW
               FlexClone Parent Vserver: iscsi100
                FlexClone Parent Volume: trident_pvc_b3cc2a3c_3233_4c2a_8000_4d49fb4cbfd4
              FlexClone Parent Snapshot: snapshot-984f23a4-7df4-4e78-939f-2837e5350f5e
                 FlexClone Volume State: online
                          Junction Path: -
                        Junction Active: -
                  Space Guarantee Style: none
              Space Guarantee In Effect: true
                    FlexClone Aggregate: aggr1_node1
                  FlexClone Data Set ID: 1127
           FlexClone Master Data Set ID: 2155667793
                         FlexClone Size: 33GB
                              Used Size: 722.4MB
                         Split Estimate: 622.9MB
                         Blocks Scanned: -
                         Blocks Updated: -
                                Comment: {"provisioning":{"svm":"iscsi100"}}
            (中略)


> volume snapshot show -vserver iscsi100 -volume trident_pvc_b3cc2a3c_3233_4c2a_8000_4d49fb4cbfd4  -fields create-time
vserver  volume                                           snapshot                                      create-time    
-------- ------------------------------------------------ --------------------------------------------- ------------------------
iscsi100 trident_pvc_b3cc2a3c_3233_4c2a_8000_4d49fb4cbfd4 snapshot-984f23a4-7df4-4e78-939f-2837e5350f5e Fri Jun 12 16:03:33 2026

参考及びリンク

Demystifying Clone Strategy in Storage Profile and its relationship with Trident Storage Class

ONTAPを使用したRed Hat OpenShift Virtualizationの導入

Red Hat OpenShift Virtualization を使用してONTAPストレージ上に VM を作成する

OpenShift VirtualizationでTrident + ONTAP利用①【OpenShiftのInstall】

OpenShift VirtualizationでTrident + ONTAP利用②【OpenShifを構築し、iSCSI Storage用の作成とTrident の導入】

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?