【2025年03月版】iSCSIによる Proxmox のLVM作成メモ

# はじめに

- iSCSIによる Proxmox のLVM作成メモ
- 以下の構成
```
[Proxmox VE ノード]
    |
   10GbE (iSCSI)
    |
[RHEL系 Linuxサーバ]
    └─ /dev/nvme0n2（物理ディスク）を iSCSI でエクスポート
```

- Proxmox側 IP : 192.168.100.10
- Redhat側 IP : 192.168.100.50
- Proxmox VE は 8.3
- Redhat は 9.5

# Proxmox側作業
### IQNの確認
```
# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1993-08.org.debian:01:b050c6ec3120
```

- ここでは、`iqn.1993-08.org.debian:01:b050c6ec3120` が、Proxmox側のIQNとする。

# Redhat側作業

- NVMeは `/dev/nvme0n2`
- IQN（iSCSI Qualified Name）は任意だが、ルールは「iqn.年-月.ドメイン:名前」なので、Redhat側IQNは `iqn.2025-03.com.example:nvme-target` とする

## iSCSI Target を構築

## Firewall設定
```
$ sudo firewall-cmd --permanent --add-port=3260/tcp
$ sudo firewall-cmd --reload
```

## iSCSI Target をインストール
```
$ sudo dnf install -y targetcli
```

## NVMeデバイスをiSCSIエクスポート
### targetcliで設定開始
```
$ sudo targetcli
targetcli shell version 2.1.57
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> 
```

### バックストア（NVMeデバイス）を作成
```
/> /backstores/block create name=nvme_disk dev=/dev/nvme0n2
```

### iSCSIターゲットを作成
```
/> /iscsi create iqn.2025-03.com.example:nvme-target
```

### LUNとしてディスクを追加
```
/> /iscsi/iqn.2025-03.com.example:nvme-target/tpg1/luns create /backstores/block/nvme_disk
```

### ポータルを作成（iSCSIの待ち受けアドレス）
```
/> /iscsi/iqn.2025-03.com.example:nvme-target/tpg1/portals create 0.0.0.0 3260
```

### ACLを作成（Proxmoxからのアクセス制御）
- 上記でProxmoxから取得したIQNを設定する。
```
/> /iscsi/iqn.2025-03.com.example:nvme-target/tpg1/acls create iqn.1993-08.org.debian:01:b050c6ec3120
```

### 設定を保存して終了
```
/> exit
Global pref auto_save_on_exit=true
Configuration saved to /etc/target/saveconfig.json
```

### 設定のバックアップ
- auto save になっているので必要ないことも。
```
# sudo targetcli saveconfig
Configuration saved to /etc/target/saveconfig.json
```

## 設定の復元のサービスを有効化

```
# systemctl enable --now target
# systemctl status target
● target.service - Restore LIO kernel target configuration
     Loaded: loaded (/usr/lib/systemd/system/target.service; enabled; preset: disabled)
     Active: active (exited) since Fri 2025-03-21 14:08:15 JST; 44min ago
    Process: 928 ExecStart=/usr/bin/targetctl restore (code=exited, status=0/SUCCESS)
   Main PID: 928 (code=exited, status=0/SUCCESS)
        CPU: 83ms

Mar 21 14:08:14 san1 systemd[1]: Starting Restore LIO kernel target configuration...
Mar 21 14:08:15 san1 systemd[1]: Finished Restore LIO kernel target configuration.
```

# Proxmox側作業

## CLIから設定するパターン

### iSCSIターゲットスキャン
```
# iscsiadm -m discovery -t sendtargets -p 192.168.100.50
192.168.100.50:3260,1 iqn.2025-03.com.example:nvme-target
```

### ログインしてセッションを作成
```
# iscsiadm -m node -T iqn.2025-03.com.example:nvme-target -p 192.168.100.50 -l
Logging in to [iface: default, target: iqn.2025-03.com.example:nvme-target, portal: 192.168.100.50,3260]
Login to [iface: default, target: iqn.2025-03.com.example:nvme-target, portal: 192.168.100.50,3260] successful.
```

### iSCSIデバイス確認
```
# lsblk
 :
 :
sdc                  8:32   0   100G  0 disk 
 :
 :
```

### Proxmoxでストレージ追加

Datacenter → Storage → Add → LVM でを行う

## GUIから設定するパターン

- Datacenter → Storage → Add → iSCSI で追加を行う
  - IDは任意、Portalは `192.168.100.50` を入力、Targetは `iqn.2025-03.com.example:nvme-target` を選択、`Use LUNs Directory` のチェックを外す
- Datacenter → Storage → Add → LVM などでディスクを追加する際に、Base Storageに上記のiSCSIを利用する。

# その他

## Proxmox側作業
### ログアウト（接続解除）
```
# iscsiadm -m node -T iqn.2025-03.com.example:nvme-target -p 192.168.100.10 -u
Logging out of session [sid: 2, target: iqn.2025-03.com.example:nvme-target, portal: 192.168.100.50,3260]
Logout of [sid: 2, target: iqn.2025-03.com.example:nvme-target, portal: 192.168.100.50,3260] successful.
```

### ノード情報を削除
```
# iscsiadm -m node -o delete -T iqn.2025-03.com.example:nvme-target -p 192.168.100.10
```

### 確認
```
# iscsiadm -m node
192.168.100.50:3260,1 iqn.2025-03.com.example:nvme-target
```

## Redhat側作業

### ACLの削除
```
/> /iscsi/iqn.2025-03.com.example:nvme-target/tpg1/acls delete iqn.1993-08.org.debian:01:b050c6ec3120
```

### ポータルの削除
```
/> /iscsi/iqn.2025-03.com.example:nvme-target/tpg1/portals delete 0.0.0.0 3260
```

### LUNの削除
```
/> /iscsi/iqn.2025-03.com.example:nvme-target/tpg1/luns delete 0
```

### iSCSIターゲットの削除
```
/> /iscsi delete iqn.2025-03.com.example:nvme-target
```

### バックストアの削除
```
/> /backstores/block delete nvme_disk
```

### 設定の保存と確認
```
/> saveconfig
Configuration saved to /etc/target/saveconfig.json
```

### 確認
```
/> ls
```

# さいごに

簡単でしたね