はじめに
前回の記事では、OpenNebula MarketplaceからのVM作成と、ISOイメージからのOSインストール方法を解説しました。
本記事では、TrueNAS ScaleをiSCSI Targetとして利用し、OpenNebulaの共有ストレージデータストアを構築する方法を解説します。これにより、以下のメリットが得られます:
- VMの高速マイグレーション: 共有ストレージによりLive Migrationが可能
- ストレージの一元管理: すべてのノードから同じストレージにアクセス
- 容量の効率的な利用: 複数のノードでストレージを共有
- バックアップの簡略化: ストレージ側でスナップショットを取得可能
検証環境
- TrueNAS Scale: 192.168.11.4(iSCSI Target)
- OpenNebula Frontend + Compute: nebula-f1 (192.168.11.110)
- OpenNebula Compute Node1: nebula-n1 (192.168.11.111)
- OpenNebula Compute Node2: nebula-n2 (192.168.11.112)
- ネットワーク: 同一セグメント(192.168.11.0/24)
注意: nebula-f1はフロントエンド機能に加えて、コンピュートノードとしても機能します。
前提条件
以下が完了していることを前提とします:
- OpenNebula 7.0 が正常にインストールされている
- nebula-f1がフロントエンド + コンピュートノードとして登録されている
- TrueNAS Scale が稼働している(192.168.11.4)
- すべてのノードから TrueNAS にネットワーク接続できる
1. TrueNAS ScaleでのiSCSI Target設定(概要)
本記事では、TrueNAS Scaleの詳細な設定手順は割愛し、以下のような設定が完了しているものとします。
設定内容
Target Global Configuration:
-
Base Name:
iqn.2005-10.org.freenas.ctl -
iSCSI listen port:
3260
Portal:
-
Listen:
192.168.11.4:3260 -
Description:
block
Initiators Group:
-
Group ID:
1 -
Initiators:
Allow all initiators(全てのInitiatorを許可)
Target:
-
Target Name:
block -
完全なIQN:
iqn.2005-10.org.freenas.ctl:block
Extent:
-
Extent Name:
block - Device: Zvol(ブロックデバイス)750GB
-
Serial:
31916zfb04c21abe - Enabled: Yes
Associated Target:
-
Target:
block -
LUN ID:
0 -
Extent:
block
iSCSI Service:
- Status: Running
- Start Automatically: Enabled
2. OpenNebulaノードでのiSCSI Initiator設定
2.1 iSCSIイニシエーターのインストール
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# iSCSIイニシエーターとマルチパスツールのインストール
sudo apt update
sudo apt install open-iscsi multipath-tools -y
実行結果例(nebula-n2):
flathill@nebula-n2:~$ sudo apt update
Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Hit:2 http://jp.archive.ubuntu.com/ubuntu noble InRelease
Get:3 http://jp.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Ign:4 https://downloads.opennebula.io/repo/7.0/Ubuntu/24.04 stable InRelease
Hit:5 https://downloads.opennebula.io/repo/7.0/Ubuntu/24.04 stable Release
...
Fetched 6,487 kB in 4s (1,762 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
31 packages can be upgraded. Run 'apt list --upgradable' to see them.
flathill@nebula-n2:~$ sudo apt install open-iscsi multipath-tools -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
open-iscsi is already the newest version (2.1.9-3ubuntu5.4).
open-iscsi set to manually installed.
multipath-tools is already the newest version (0.9.4-5ubuntu8).
multipath-tools set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 31 not upgraded.
2.2 Initiator IQNの確認
各ノードのInitiator IQN(iSCSI Qualified Name)を確認します。
各ノードで実行:
sudo cat /etc/iscsi/initiatorname.iscsi
出力例:
# nebula-f1
InitiatorName=iqn.2004-10.com.ubuntu:01:dfbae5d5031
# nebula-n1
InitiatorName=iqn.2004-10.com.ubuntu:01:dfbae5d5031
# nebula-n2
InitiatorName=iqn.2004-10.com.ubuntu:01:dfbae5d5031
【重要】 各ノードで異なるInitiator IQNが生成されていることを確認します。
【重要】Initiator IQNが重複している場合の対処
問題: ProxmoxでVMをクローンした場合、Initiator IQNが重複してしまいます。
症状:
- 複数のノードで同じInitiator IQNが表示される
- iSCSI接続時に競合が発生する
- 一部のノードしか正常に接続できない
原因:
VMクローン時に /etc/iscsi/initiatorname.iscsi がコピーされるため、各ノードで一意のIQNが生成されていません。
2.3 Initiator IQNの再生成
重複が確認された場合、以下の手順で各ノードのInitiator IQNを再生成します。
2.3.1 Initiator IQNファイルのバックアップ
全ノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# 既存ファイルのバックアップ
sudo cp /etc/iscsi/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi.bak
2.3.2 新しいInitiator IQNの生成
nebula-f1 で実行:
# 既存ファイルを削除
sudo rm /etc/iscsi/initiatorname.iscsi
# 新しいIQNを生成
sudo sh -c "echo InitiatorName=$(sudo iscsi-iname) > /etc/iscsi/initiatorname.iscsi"
# 確認
sudo cat /etc/iscsi/initiatorname.iscsi
nebula-n1 で実行:
# 既存ファイルを削除
sudo rm /etc/iscsi/initiatorname.iscsi
# 新しいIQNを生成
sudo sh -c "echo InitiatorName=$(sudo iscsi-iname) > /etc/iscsi/initiatorname.iscsi"
# 確認
sudo cat /etc/iscsi/initiatorname.iscsi
nebula-n2 で実行:
# 既存ファイルを削除
sudo rm /etc/iscsi/initiatorname.iscsi
# 新しいIQNを生成
sudo sh -c "echo InitiatorName=$(sudo iscsi-iname) > /etc/iscsi/initiatorname.iscsi"
# 確認
sudo cat /etc/iscsi/initiatorname.iscsi
出力例:
# nebula-f1
flathill@nebula-f1:$ sudo cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-04.com.open-iscsi:1ab59e677fe7
# nebula-n1
flathill@nebula-n1:~$ sudo cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-04.com.open-iscsi:7d447c728135
# nebula-n2
flathill@nebula-n2:~$ sudo cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-04.com.open-iscsi:b3c1598e7ef
【重要】 全ノードで異なるInitiator IQNが生成されていることを確認します。
2.4 iSCSI Targetの検出
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# iSCSI Targetの検出
sudo iscsiadm -m discovery -t st -p 192.168.11.4
出力例:
flathill@nebula-f1:~$ sudo iscsiadm -m discovery -t st -p 192.168.11.4
192.168.11.4:3260,1 iqn.2005-10.org.freenas.ctl:block
flathill@nebula-n1:~$ sudo iscsiadm -m discovery -t st -p 192.168.11.4
192.168.11.4:3260,1 iqn.2005-10.org.freenas.ctl:block
flathill@nebula-n2:~$ sudo iscsiadm -m discovery -t st -p 192.168.11.4
192.168.11.4:3260,1 iqn.2005-10.org.freenas.ctl:block
この出力は、TrueNAS Scale上のiSCSI Target block が正常に検出されたことを示しています。
2.5 iSCSI Targetへのログイン
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# iSCSI Targetにログイン
sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block --login
出力例:
flathill@nebula-f1:~$ w
Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:block, portal: 192.168.11.4,3260]
Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:block, portal: 192.168.11.4,3260] successful.
flathill@nebula-n1:~$ sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block --login
Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:block, portal: 192.168.11.4,3260]
Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:block, portal: 192.168.11.4,3260] successful.
flathill@nebula-n2:~$ sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block --login
Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:block, portal: 192.168.11.4,3260]
Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:block, portal: 192.168.11.4,3260] successful.
ログインが成功すると、iSCSI LUNがブロックデバイスとしてマウントされます。
2.6 iSCSIセッションの確認
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# iSCSIセッションの確認
sudo iscsiadm -m session
出力例:
flathill@nebula-f1:~$ sudo iscsiadm -m session
tcp: [1] 192.168.11.4:3260,1 iqn.2005-10.org.freenas.ctl:block (non-flash)
flathill@nebula-n1:~$ sudo iscsiadm -m session
tcp: [1] 192.168.11.4:3260,1 iqn.2005-10.org.freenas.ctl:block (non-flash)
flathill@nebula-n2:~$ sudo iscsiadm -m session
tcp: [1] 192.168.11.4:3260,1 iqn.2005-10.org.freenas.ctl:block (non-flash)
この出力は、TrueNASへのiSCSI接続が確立されていることを示しています。
2.7 ブロックデバイスの確認
iSCSI LUNがブロックデバイスとして認識されていることを確認します。
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# ブロックデバイスの一覧
lsblk
出力例:
flathill@nebula-f1:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 196.9G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 98.5G 0 lvm /
sdb 8:16 0 750G 0 disk
sr0 11:0 1 3.1G 0 rom
flathill@nebula-n1:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 196.9G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 98.5G 0 lvm /
sdb 8:16 0 750G 0 disk
sr0 11:0 1 3.1G 0 rom
flathill@nebula-n2:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 196.9G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 98.5G 0 lvm /
sdb 8:16 0 750G 0 disk
sr0 11:0 1 3.1G 0 rom
sdb(または類似のデバイス名)が新しく表示されていれば、iSCSI LUNが正常に認識されています。
詳細情報の確認:
# iSCSI LUNのデバイス情報
sudo lsblk -o NAME,SIZE,SERIAL,VENDOR,MODEL
出力例:
flathill@nebula-f1:~$ sudo lsblk -o NAME,SIZE,SERIAL,VENDOR,MODEL
NAME SIZE SERIAL VENDOR MODEL
sda 200G drive-scsi0 QEMU QEMU HARDDISK
├─sda1 1G
├─sda2 2G
└─sda3 196.9G
└─ubuntu--vg-ubuntu--lv 98.5G
sdb 750G 3191e2b04c21abe TrueNAS iSCSI Disk
sr0 3.1G QM00003 QEMU QEMU DVD-ROM
flathill@nebula-n1:~$ sudo lsblk -o NAME,SIZE,SERIAL,VENDOR,MODEL
NAME SIZE SERIAL VENDOR MODEL
sda 200G drive-scsi0 QEMU QEMU HARDDISK
├─sda1 1G
├─sda2 2G
└─sda3 196.9G
└─ubuntu--vg-ubuntu--lv 98.5G
sdb 750G 3191e2b04c21abe TrueNAS iSCSI Disk
sr0 3.1G QM00003 QEMU QEMU DVD-ROM
flathill@nebula-n2:~$ sudo lsblk -o NAME,SIZE,SERIAL,VENDOR,MODEL
NAME SIZE SERIAL VENDOR MODEL
sda 200G drive-scsi0 QEMU QEMU HARDDISK
├─sda1 1G
├─sda2 2G
└─sda3 196.9G
└─ubuntu--vg-ubuntu--lv 98.5G
sdb 750G 3191e2b04c21abe TrueNAS iSCSI Disk
sr0 3.1G QM00003 QEMU QEMU DVD-ROM
SERIAL が TrueNAS で設定した値(31916zfb04c21abe)と一致していることを確認します。
2.8 自動ログイン設定
再起動後も自動的にiSCSI Targetにログインするように設定します。
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# 自動ログインの有効化
sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block --op update -n node.startup -v automatic
# iSCSIサービスの有効化
sudo systemctl enable open-iscsi iscsid
出力例(nebula-f1):
flathill@nebula-f1:~$ sudo systemctl enable open-iscsi iscsid
Synchronizing state of open-iscsi.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable open-iscsi
Synchronizing state of iscsid.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable iscsid
確認:
# 自動起動設定の確認
sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block | grep node.startup
出力例:
flathill@nebula-f1:~$ sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block | grep node.startup
node.startup = automatic
flathill@nebula-n1:~$ sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block | grep node.startup
node.startup = automatic
flathill@nebula-n2:~$ sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block | grep node.startup
node.startup = automatic
3. マルチパス設定
マルチパス機能により、iSCSI LUNへの冗長なアクセスパスを管理できます(冗長構成の場合)。本環境では単一パスですが、将来の拡張に備えて設定します。
3.1 マルチパス設定ファイルの作成
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# 既存設定のバックアップ
sudo cp -p /etc/multipath.conf /etc/multipath.conf.ORG
# マルチパス設定ファイルの作成
sudo tee /etc/multipath.conf > /dev/null <<'EOF'
defaults {
user_friendly_names yes
find_multipaths no
}
blacklist {
devnode "^vd[a-z]"
}
blacklist_exceptions {
property "(SCSI_IDENT_|ID_WWN)"
}
EOF
設定の説明:
-
user_friendly_names yes: デバイス名を分かりやすくする(例:/dev/mapper/mpatha) -
find_multipaths no: シングルパスでもマルチパスデバイスを強制的に作成します -
blacklist: ローカルディスク(vda)をマルチパス対象から除外 -
blacklist_exceptions: SCSI識別子を持つデバイス(iSCSI LUN)をブラックリストから除外します
3.2 マルチパスサービスの起動
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# マルチパスサービスの有効化と起動
sudo systemctl enable multipathd
sudo systemctl restart multipathd
# マルチパスデバイスの手動作成
sudo multipath -v3
sudo multipath -r
# ステータス確認
sudo systemctl status multipathd
出力例(nebula-n1):
flathill@nebula-n1:~$ sudo systemctl enable multipathd
flathill@nebula-n1:~$ sudo systemctl restart multipathd
flathill@nebula-n1:~$ sudo systemctl status multipathd
● multipathd.service - Device-Mapper Multipath Device Controller
Loaded: loaded (/usr/lib/systemd/system/multipathd.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-12-09 07:47:06 UTC; 14s ago
TriggeredBy: ● multipathd.socket
Process: 3192026 ExecStartPre=/sbin/modprobe dm-multipath (code=exited, status=0/SUCCESS)
Main PID: 3192029 (multipathd)
Status: "up"
Tasks: 7
Memory: 18.4M (peak: 18.6M)
CPU: 27ms
CGroup: /system.slice/multipathd.service
└─3192029 /sbin/multipathd -d -s
Dec 09 07:47:06 nebula-n1 systemd[1]: Starting multipathd.service - Device-Mapper Multipath Device Controller...
Dec 09 07:47:06 nebula-n1 multipathd[3192029]: multipathd v0.9.4: start up
Dec 09 07:47:06 nebula-n1 multipathd[3192029]: reconfigure: setting up paths and maps
Dec 09 07:47:06 nebula-n1 systemd[1]: Started multipathd.service - Device-Mapper Multipath Device Controller.
3.3 マルチパスデバイスの確認
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# マルチパスデバイスの一覧
sudo multipath -ll
出力例:
flathill@nebula-f1:~$ sudo multipath -ll
mpathb (36589cfc0000007974c3b8445544ea1fc) dm-1 TrueNAS,iSCSI Disk
size=750G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 7:0:0:0 sdb 8:16 active ready running
flathill@nebula-n1:~$ sudo multipath -ll
mpathb (36589cfc0000007974c3b8445544ea1fc) dm-1 TrueNAS,iSCSI Disk
size=750G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 7:0:0:0 sdb 8:16 active ready running
flathill@nebula-n2:~$ sudo multipath -ll
mpathb (36589cfc0000007974c3b8445544ea1fc) dm-1 TrueNAS,iSCSI Disk
size=750G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 7:0:0:0 sdb 8:16 active ready running
重要な情報:
-
デバイス名:
mpathb -
パス:
/dev/mapper/mpathb -
サイズ:
750G -
ステータス:
active ready running
この /dev/mapper/mpathb が、今後使用するiSCSI LUNのデバイスパスになります。
3.4 デバイスパスの確認
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# マルチパスデバイスの詳細確認
ls -l /dev/mapper/
出力例:
flathill@nebula-f1:~$ ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Dec 4 01:50 control
lrwxrwxrwx 1 root root 7 Dec 9 13:30 mpathb -> ../dm-1
lrwxrwxrwx 1 root root 7 Dec 4 01:50 ubuntu--vg-ubuntu--lv -> ../dm-0
flathill@nebula-n1:~$ ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Dec 4 01:50 control
lrwxrwxrwx 1 root root 7 Dec 9 07:56 mpathb -> ../dm-1
lrwxrwxrwx 1 root root 7 Dec 4 01:49 ubuntu--vg-ubuntu--lv -> ../dm-0
flathill@nebula-n2:~$ ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Dec 4 01:47 control
lrwxrwxrwx 1 root root 7 Dec 9 07:55 mpathb -> ../dm-1
lrwxrwxrwx 1 root root 7 Dec 4 01:47 ubuntu--vg-ubuntu--lv -> ../dm-0
/dev/mapper/mpathb が /dev/dm-1 へのシンボリックリンクとして作成されています。
3.5 lsblkでの最終確認
すべてのノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# ブロックデバイスの階層表示
lsblk
出力例:
flathill@nebula-f1:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 196.9G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 98.5G 0 lvm /
sdb 8:16 0 750G 0 disk
└─mpathb 252:1 0 750G 0 mpath
sr0 11:0 1 3.1G 0 rom
flathill@nebula-n1:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 196.9G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 98.5G 0 lvm /
sdb 8:16 0 750G 0 disk
└─mpathb 252:1 0 750G 0 mpath
sr0 11:0 1 3.1G 0 rom
flathill@nebula-n2:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 196.9G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 98.5G 0 lvm /
sdb 8:16 0 750G 0 disk
└─mpathb 252:1 0 750G 0 mpath
sr0 11:0 1 3.1G 0 rom
mpathb が mpath タイプとして表示されていれば、マルチパス設定は成功です。
4. 全ノードでの動作確認
4.1 全ノードから同じLUNが見えることを確認
全ノード(nebula-f1, nebula-n1, nebula-n2)で実行:
sudo multipath -ll | grep mpathb
出力例:
flathill@nebula-f1:~$ sudo multipath -ll | grep mpathb
mpathb (36589cfc0000007974c3b8445544ea1fc) dm-1 TrueNAS,iSCSI Disk
flathill@nebula-n1:~$ sudo multipath -ll | grep mpathb
mpathb (36589cfc0000007974c3b8445544ea1fc) dm-1 TrueNAS,iSCSI Disk
flathill@nebula-n2:~$ sudo multipath -ll | grep mpathb
mpathb (36589cfc0000007974c3b8445544ea1fc) dm-1 TrueNAS,iSCSI Disk
全ノードで同じ WWID(36589cfc0000007974c3b8445544ea1fc)が表示されていれば、同一のiSCSI LUNにアクセスできています。
4.2 デバイスの詳細情報を確認
全ノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# デバイス情報の表示
sudo fdisk -l /dev/mapper/mpathb
出力例:
flathill@nebula-f1:~$ sudo fdisk -l /dev/mapper/mpathb
Disk /dev/mapper/mpathb: 750 GiB, 805306368000 bytes, 1572864000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 16384 bytes
I/O size (minimum/optimal): 16384 bytes / 8388608 bytes
flathill@nebula-n1:~$ sudo fdisk -l /dev/mapper/mpathb
Disk /dev/mapper/mpathb: 750 GiB, 805306368000 bytes, 1572864000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 16384 bytes
I/O size (minimum/optimal): 16384 bytes / 8388608 bytes
flathill@nebula-n2:~$ sudo fdisk -l /dev/mapper/mpathb
Disk /dev/mapper/mpathb: 750 GiB, 805306368000 bytes, 1572864000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 16384 bytes
I/O size (minimum/optimal): 16384 bytes / 8388608 bytes
全ノードで同じサイズ(750 GiB)が表示されていることを確認します。
4.3 シリアル番号の確認
全ノード(nebula-f1, nebula-n1, nebula-n2)で実行:
# シリアル番号の確認
sudo lsblk -o NAME,SIZE,SERIAL,VENDOR,MODEL
出力例:
flathill@nebula-f1:~$ sudo lsblk -o NAME,SIZE,SERIAL,VENDOR,MODEL
NAME SIZE SERIAL VENDOR MODEL
sda 200G drive-scsi0 QEMU QEMU HARDDISK
tqsda1 1G
tqsda2 2G
mqsda3 196.9G
mqubuntu--vg-ubuntu--lv 98.5G
sdb 750G 3191e2b04c21abe TrueNAS iSCSI Disk
mqmpathb 750G
sr0 3.1G QM00003 QEMU QEMU DVD-ROM
flathill@nebula-n1:~$ sudo lsblk -o NAME,SIZE,SERIAL,VENDOR,MODEL
NAME SIZE SERIAL VENDOR MODEL
sda 200G drive-scsi0 QEMU QEMU HARDDISK
├─sda1 1G
├─sda2 2G
└─sda3 196.9G
└─ubuntu--vg-ubuntu--lv 98.5G
sdb 750G 3191e2b04c21abe TrueNAS iSCSI Disk
└─mpathb 750G
sr0 3.1G QM00003 QEMU QEMU DVD-ROM
flathill@nebula-n2:~$ sudo lsblk -o NAME,SIZE,SERIAL,VENDOR,MODEL
NAME SIZE SERIAL VENDOR MODEL
sda 200G drive-scsi0 QEMU QEMU HARDDISK
├─sda1 1G
├─sda2 2G
└─sda3 196.9G
└─ubuntu--vg-ubuntu--lv 98.5G
sdb 750G 3191e2b04c21abe TrueNAS iSCSI Disk
└─mpathb 750G
sr0 3.1G QM00003 QEMU QEMU DVD-ROM
全ノードで同じシリアル番号(31916zfb04c21abe)が表示されていることを確認します。これはTrueNASで設定したExtentのSerialと一致します。
まとめ(現在の状態)
達成したこと
✅ TrueNAS Scale でiSCSI Targetを設定
✅ OpenNebulaの3つのノード(nebula-f1, nebula-n1, nebula-n2)からiSCSI Targetを検出
✅ 全ノードでiSCSI Targetにログイン成功
✅ 全ノードでiSCSI LUNがブロックデバイスとして認識される(/dev/sdb)
✅ マルチパス設定により /dev/mapper/mpathb としてアクセス可能
✅ 全ノードから同一のLUNが見えることを確認(同じWWIDとシリアル番号)
現在のデバイス状態
各ノードでの状態:
iSCSI Target: 192.168.11.4:3260
Target IQN: iqn.2005-10.org.freenas.ctl:block
LUN ID: 0
デバイスパス: /dev/mapper/mpathb
サイズ: 750 GiB
シリアル: 31916zfb04c21abe
WWID: 36589cfc0000007974c3b8445544ea1fc
次のステップ
次回の記事では、以下の手順を解説します:
- クラスタファイルシステムの構築: OCFS2を使用して、全ノードから同時書き込み可能なファイルシステムを作成
- OpenNebulaデータストアの作成: 共有ストレージをデータストアとして登録
- 動作確認: イメージのアップロードとVMの作成
トラブルシューティング
問題1:iSCSI Targetが検出されない
症状:
sudo iscsiadm -m discovery -t st -p 192.168.11.4
# (何も表示されない)
原因:
- TrueNASのiSCSIサービスが起動していない
- ファイアウォールでポート3260がブロックされている
- ネットワーク接続の問題
解決方法:
# TrueNASへの接続確認
ping -c 3 192.168.11.4
# ポート3260の確認
nc -zv 192.168.11.4 3260
# 出力例(成功):
# Connection to 192.168.11.4 3260 port [tcp/iscsi-target] succeeded!
問題2:ログインは成功するがデバイスが見えない
症状:
sudo iscsiadm -m session
# tcp: [1] 192.168.11.4:3260,1 iqn.2005-10.org.freenas.ctl:block (non-flash)
lsblk
# (iSCSI LUNが表示されない)
原因:
- カーネルモジュールがロードされていない
- デバイスの初期化に時間がかかっている
解決方法:
# iSCSIカーネルモジュールの確認
lsmod | grep iscsi
# 数秒待ってから再確認
sleep 5
lsblk
# iSCSIセッションの再起動
sudo systemctl restart open-iscsi
sudo iscsiadm -m session --rescan
問題3:マルチパスデバイスが作成されない
症状:
sudo multipath -ll
# (何も表示されない)
原因:
- multipath.confの設定ミス
- multipathd サービスが起動していない
解決方法:
# サービスの状態確認
sudo systemctl status multipathd
# 設定ファイルの構文チェック
sudo multipath -t
# 手動でマルチパスデバイスを作成
sudo multipath -v3
sudo multipath -r
# 再起動
sudo systemctl restart multipathd
sudo multipath -ll
問題4:再起動後にiSCSI LUNが見えない
原因:
- 自動ログイン設定がされていない
- サービスの起動順序の問題
解決方法:
# 自動ログイン設定の確認
sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block | grep node.startup
# automatic になっていない場合は設定
sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:block --op update -n node.startup -v automatic
# サービスの有効化
sudo systemctl enable open-iscsi
sudo systemctl enable iscsid
sudo systemctl enable multipathd
参考情報
使用したコマンド一覧
# iSCSI Target検出
sudo iscsiadm -m discovery -t st -p <TARGET_IP>
# iSCSI Targetログイン
sudo iscsiadm -m node -T <TARGET_IQN> --login
# iSCSIセッション確認
sudo iscsiadm -m session
# マルチパスデバイス確認
sudo multipath -ll
# ブロックデバイス確認
lsblk
重要なファイルパス
-
/etc/iscsi/initiatorname.iscsi: Initiator IQN -
/etc/iscsi/iscsid.conf: iSCSI設定ファイル -
/etc/multipath.conf: マルチパス設定ファイル -
/dev/mapper/mpathb: マルチパスデバイスのパス