SAN環境におけるONTAPへの移行【pvmoveを使ったLVM環境のデータ移行】

## はじめに
本記事では**SAN環境におけるLinuxのLUN移行について記載**します。
LUN移行は、ストレージの効率的な管理だけでなく、**ストレージ機器の更新の際に必要となる内容**になります。多くの移行では、初期移行から最後の差分切り替えまでの方法や上位I/Oへの影響を減らす事に注力する事になるかと思いますが、本記事ではオンラインで可能な移行として**LVM環境におけるpvmoveを使用したLUN移行の基本的な手順、注意点について記載**します。

<img width="700" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/8d0330fd-3aef-d7c3-2126-e67b3b4e19d0.png>

## 何をしたい？できる？
<font color="Red">**SAN環境におけるオンラインデータ移行**</font>
**LVM環境におけるpvmoveを使ったLUN移行**

## pvmoveとは
**LVM（Logical Volume Manager）はLinuxでディスクを管理するためのシステム**で、HDD/SSD/LUNを一つ以上のPhysical volumeに分割し、それらを一つ以上のVolume　Group（VG）にまとめ、それらから一つ以上のLogical volumeを作成することができます。

**pvmoveコマンドは、LVMのPhysical volume間でデータを移動するためのコマンド**で、HDD/SSD/LUNの移動や新規機器へのLUN移行時にデータを安全に移動する為に利用できます。

<img width="500" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/91ba8b86-923f-b7da-8c28-9b1faac8481e.png>



## 記事における環境情報
本記事では、以下の環境で実施した内容となります。
- AlmaLinux release 9.4
- 移行元 Storage  : NetApp HCI(旧名:Solidfire)
- 移行先 Storage  : ONTAP 9.14.1

**本記事では、既に移行元が構築及び利用されている環境を前提としています**。

環境のイメージとしては以下の通りで、
Solidfire＝＞ONTAPという方向のオンラインデータ移行を実施します。
Storage機能として**NetApp HCI(Solidfire)とONTAP間でSnapMirrorは設定できますが、オンラインデータ移行ではない**為、ここでは割愛致します。


<img width="500" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/95a9f6ae-31ad-2036-f0fd-4aa8a4d6c600.png>


## 設定手順


### 1. ONTAP側における設定


#### 1-1. ONTAP側でLUN利用の為の設定
ONTAP側でLUNを提供する為の仮想ストレージ(SVM)の作成及びLUNの作成を実施します。
詳細手順としては、[過去の記事](https://qiita.com/s_yosh1d/items/b2ca28c542dfa6df0629)を参照頂ければ図解ありの内容となる為、理解し易いと思います。(OSの種類をLinuxに変えたりIPの数値を変えるだけでほぼ同等の手順になります)

**本記事の環境用に設定した内容は以下になります**。

```bash:
# iSCSI LIFの設定値
> net int show -vserver vs_iscsi01
  (network interface show)
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
vs_iscsi01
            data01       up/up    172.16.22.13/24    PS-C250-01    a0a-22  true
            data02       up/up    172.16.22.14/24    PS-C250-02    a0a-22  true
2 entries were displayed.


# iSCSI用SVMの情報
> iscsi show -vserver vs_iscsi01

                 Vserver: vs_iscsi01
             Target Name: iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8
            Target Alias: vs_iscsi01
   Administrative Status: up


# SVMに作成したigroupの設定値
# Linux側のinitiarot名はcat /etc/iscsi/initiatorname.iscsiで確認できます
> igroup show -vserver vs_iscsi01 -igroup ig01
          Vserver Name: vs_iscsi01
           Igroup Name: ig01
              Protocol: iscsi
               OS Type: linux
Portset Binding Igroup: -
           Igroup UUID: bd565d27-3472-11ef-b600-d039ea5905a2
                  ALUA: true
            Initiators: iqn.1994-05.com.redhat:d12eba6e51b (not logged in)


# SVMに作成したVolumeの設定値
> vol show -vserver vs_iscsi01  -volume iscsi0*
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
vs_iscsi01 iscsi01     aggr1_node1  online     RW          5GB     5.00GB    0%
vs_iscsi01 iscsi02     aggr1_node1  online     RW          5GB     5.00GB    0%
2 entries were displayed.


# SVMに作成したLUNの設定値
> lun show -vserver vs_iscsi01
Vserver   Path                            State   Mapped   Type        Size
--------- ------------------------------- ------- -------- -------- --------
vs_iscsi01 /vol/iscsi01/lun01             online  mapped   linux         3GB
vs_iscsi01 /vol/iscsi02/lun02             online  mapped   linux         3GB
2 entries were displayed.


# SVMに作成したLUNのMapping設定値
> lun show -m -vserver vs_iscsi01
Vserver    Path                                      Igroup   LUN ID  Protocol
---------- ----------------------------------------  -------  ------  --------
vs_iscsi01 /vol/iscsi01/lun01                        ig01          0  iscsi
vs_iscsi01 /vol/iscsi02/lun02                        ig01          1  iscsi
2 entries were displayed.
```

### 2. Linux側でONTAPのLUNを認識
#### 2-1. SolidfireのLUN容量について確認
まず、Linuxで認識しているSolidfireのLUNについて確認します。

<img width="650" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/89e6a219-d0d6-b754-1e12-46fb4091e4c1.png>


**Solidfire上では3GBのLUNを2つ作成していますが、LinuxではLVMを利用して認識したLUNから小さいサイズのVolumeを切っているので、2GBの領域が存在**します。


```bash:
> df -h |grep mapper
/dev/mapper/almalinux-root     115G  5.2G  110G    5% /
/dev/mapper/vg001-lvm_vol001   2.0G  1.4G  444M   76% /solid_vol001
/dev/mapper/vg001-lvm_vol002   2.9G  2.1G  732M   74% /solid_vol002
```



#### 2-2. ONTAP向けのiSCSIターゲットの探索
Linux側からONTAPのSVMに設定したiSCSI用LIFのIPアドレスを指定して探索を実施します。

<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/fa3d5a41-ccc0-0c3a-5bc2-ac3e77cf8696.png>

```bash:
> iscsiadm --mode discovery --type sendtargets --portal 172.16.22.13
172.16.22.13:3260,1032 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8
172.16.22.14:3260,1033 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8

#現状の確認
> iscsiadm --mode node
172.16.22.13:3260,1032 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8
172.16.22.14:3260,1033 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8
172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol01.7
172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol02.8

> iscsiadm -m session
tcp: [1] 172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol01.7 (non-flash)
tcp: [2] 172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol02.8 (non-flash)
```

#### 2-3. iSCSIログインの実施
探索したしたiSCSIターゲットに対して、それぞれログインを実施します。

<img width="350" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/d8f51c0b-439b-b36e-57c1-22caddd5caa2.png>

```bash:
> iscsiadm -m node --login -p 172.16.22.13
Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8, portal: 172.16.22.13,3260]
Login to [iface: default, target: iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8, portal: 172.16.22.13,3260] successful.


>  iscsiadm -m node --login -p 172.16.22.14
Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8, portal: 172.16.22.14,3260]
Login to [iface: default, target: iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8, portal: 172.16.22.14,3260] successful.


>  iscsiadm -m session
tcp: [1] 172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol01.7 (non-flash)
tcp: [2] 172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol02.8 (non-flash)
tcp: [3] 172.16.22.13:3260,1032 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8 (non-flash)
tcp: [4] 172.16.22.14:3260,1033 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8 (non-flash)
```

#### 2-4. ONTAPのLUNデバイスの確認
この時点で、fdiskコマンドを実行するとONTAPに作成してあるLUNが見えますので
確認できたデバイスのwwidを確認しておきます。
(後のマルチパス設定の部分で利用する)


```bash:
# wwidを確認
> /lib/udev/scsi_id --whitelisted --device=/dev/sdd
3600a098038313951683f576a526d3137

>  /lib/udev/scsi_id --whitelisted --device=/dev/sde
3600a098038313951683f576a526d3138

>  /lib/udev/scsi_id --whitelisted --device=/dev/sdf
3600a098038313951683f576a526d3137

>  /lib/udev/scsi_id --whitelisted --device=/dev/sdg
3600a098038313951683f576a526d3138
```



#### 2-5. Multipathの設定

Linuxのroot領域は外部ストレージのLUNに作成していないので、複数経路から同じデバイスを確認する必要がありません。MultiPath設定にする必要が無いので、multipath.confのblacklistの項目に追記が必要になりますので、root領域のwwidを確認しておきます。

```bash:
# sbaのwwidを確認
>  /lib/udev/scsi_id --whitelisted --device=/dev/sda
360022480240a2fe865efd073be91bc6d

```
multipath.confの修正を実施しますが、本記事では以下の内容を加味して修正しています。

 - root領域は対象外なので、black listに追記
 - 認識するONTAP LUNに対してmpathXXというマルチパスデバイス名となるように設定
  (指定しない場合は、長い英数字で表示されます)

<img width="500" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/33266c33-7c48-b450-24f5-aed462f7fc2c.png>


```bash:
# multipathの設定ファイルを編集
> cat /etc/multipath.conf

defaults {
        user_friendly_names yes
        find_multipaths yes
}

devices {
   device {
      vendor         "NETAPP  "
      product         "LUN.*"
      no_path_retry     queue
      path_checker      tur
   }
}


blacklist {
            wwid       360022480240a2fe865efd073be91bc6d
            devnode    "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
            devnode    "^hd[a-z]"
            devnode     "^cciss.*"
}
multipaths {
            multipath {
                       wwid                 3600a098038313951683f576a526d3137
                       alias                mpath0
            }
            multipath {
                       wwid                 3600a098038313951683f576a526d3138
                       alias                mpath1

            }
}
```
#### 2-6. Multipathの認識


マルチパスデバイスの一覧を更新してから、パスの状態を確認します。
```bash:
> multipath -r

> multipath -ll
mpath0 (3600a098038313951683f576a526d3137) dm-4 NETAPP,LUN C-Mode
size=3.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 4:0:0:0 sdd 8:48 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  `- 5:0:0:0 sdf 8:80 active ready running
  
mpath1 (3600a098038313951683f576a526d3138) dm-5 NETAPP,LUN C-Mode
size=3.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 4:0:0:1 sde 8:64 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  `- 5:0:0:1 sdg 8:96 active ready running
```



### 3. pvmoveによる移行


#### 3-1. 移行元LUNの確認
移行元SolidfireのLUNが、Linux上に於いてどのようなパーティションで切られているか確認します。

```bash:
> fdisk -l /dev/sdb
ディスク /dev/sdb: 2.79 GiB, 3001024512 バイト, 5861376 セクタ
ディスク型式: SSD SAN
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0xcedf91c6

デバイス   起動 開始位置 終了位置  セクタ サイズ Id タイプ
/dev/sdb1           2048  5861375 5859328   2.8G 8e Linux LVM



> fdisk -l /dev/sdc
ディスク /dev/sdc: 2.79 GiB, 3001024512 バイト, 5861376 セクタ
ディスク型式: SSD SAN
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x96d00fdc

デバイス   起動 開始位置 終了位置  セクタ サイズ Id タイプ
/dev/sdc1           2048  5861375 5859328   2.8G 8e Linux LVM
```
#### 3-2. 移行先LUNへパーティション作成

移行元と移行先の構成を同じにする為、**sfdisk -dコマンドで移行元の情報を抜き出し、移行先へ内容を反映**させます。本記事の環境では、LUNを2つ利用しているので、以下の内容を対象を変えて2回実施しています。

以下のイメージ図では、本項でPhysical volumeが作成されているように見えますが、正確には次項のvgextend実行時に合わせてPhysical volumeの作成も実施されます。

<img width="350" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/c85b8fa9-89b8-d060-5552-307982f4d97b.png>


```bash:
> sfdisk -d /dev/sdb | sfdisk /dev/mapper/mpath0 --force
このディスクを使用しているユーザがいないかどうかを調べています ... OK

ディスク /dev/mapper/mpath0: 3 GiB, 3221225472 バイト, 6291456 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 65536 バイト

>>> スクリプトのヘッダを受け付けました。
>>> スクリプトのヘッダを受け付けました。
>>> スクリプトのヘッダを受け付けました。
>>> スクリプトのヘッダを受け付けました。
>>> スクリプトのヘッダを受け付けました。
>>> 新しい DOS ディスクラベルを作成しました。識別子は 0xcedf91c6 です。
/dev/mapper/mpath0-part1: 新しいパーティション 1 をタイプ Linux LVM、サイズ 2.8 GiB で作成しました。
/dev/mapper/mpath0-part2: 終了。

新しい状態:
ディスクラベルのタイプ: dos
ディスク識別子: 0xcedf91c6

デバイス                 起動 開始位置 終了位置  セクタ サイズ Id タイプ
/dev/mapper/mpath0-part1          2048  5861375 5859328   2.8G 8e Linux LVM
(中略)


#　移行先LUNに反映されているか確認
> fdisk -l /dev/mapper/mpath0
ディスク /dev/mapper/mpath0: 3 GiB, 3221225472 バイト, 6291456 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 65536 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0xcedf91c6

デバイス             起動 開始位置 終了位置  セクタ サイズ Id タイプ
/dev/mapper/mpath0p1          2048  5861375 5859328   2.8G 8e Linux LVM
```


#### 3-3. 既存のVolume Groupへ追加

パーティション設定済みの移行先ディスクを既存のVolume Groupへ追加(拡張)します。
<img width="350" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/56177b81-809f-9c6b-ceef-d529ceb4aeb5.png>

```bash:
# 既存のVolume group情報の確認
> vgdisplay
  --- Volume group ---
  VG Name               vg001
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <5.59 GiB
  PE Size               4.00 MiB
  Total PE              1430
  Alloc PE / Size       1280 / 5.00 GiB
  Free  PE / Size       150 / 600.00 MiB
  VG UUID               LPPMTp-nXAL-HA82-s24A-FNF8-d6Fk-4m6mf1
  (中略)


# Volume groupの拡張(移行先ディスクを追加)
>  vgextend vg001 /dev/mapper/mpath0p1
  Physical volume "/dev/mapper/mpath0p1" successfully created.
  Volume group "vg001" successfully extended
  
>  vgextend vg001 /dev/mapper/mpath1p1
  Physical volume "/dev/mapper/mpath1p1" successfully created.
  Volume group "vg001" successfully extended


# Volume group情報の確認
> vgdisplay
  --- Volume group ---
  VG Name               vg001
  System ID
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               11.17 GiB
  PE Size               4.00 MiB
  Total PE              2860
  Alloc PE / Size       1280 / 5.00 GiB
  Free  PE / Size       1580 / 6.17 GiB
  VG UUID               LPPMTp-nXAL-HA82-s24A-FNF8-d6Fk-4m6mf1
```

#### 3-4. pvmoveコマンドを使用してデータを移行

pvmoveコマンドで移行元のPhysical volumeから移行先のPhysical volumeを指定し、データを移行します。また、pvmove中のWrite処理も反映されます。

<img width="350" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/9fb71a8c-acda-5963-dc40-1a0cc5b55589.png>


```bash:
# 既存Physical volumeと移行先Physical volumeの空き容量を比較
# 移行元のsdb1やsdc1の空きが少ないことが確認できる
> pvs |grep -v "/dev/sda3"
  PV                   VG        Fmt  Attr PSize   PFree
  /dev/mapper/mpath0p1 vg001     lvm2 a--    2.79g   2.79g
  /dev/mapper/mpath1p1 vg001     lvm2 a--    2.79g   2.79g
  /dev/sdb1            vg001     lvm2 a--    2.79g 600.00m
  /dev/sdc1            vg001     lvm2 a--    2.79g      0

#　移行の実施(5秒ごとに状態を確認)
> pvmove -i 5 /dev/sdb1 /dev/mapper/mpath0p1
  /dev/sdb1: Moved: 4.96%
  /dev/sdb1: Moved: 10.09%
  /dev/sdb1: Moved: 14.34%
  /dev/sdb1: Moved: 20.00%
  /dev/sdb1: Moved: 24.78%
  /dev/sdb1: Moved: 29.38%
  /dev/sdb1: Moved: 35.04%
  /dev/sdb1: Moved: 38.76%
(中略)

# 既存Physical volumeと移行先Physical volumeの空き容量を比較
# 移行元のsdb1の空きが増えたことが確認できる
> pvs |grep -v "/dev/sda3"
  PV                   VG        Fmt  Attr PSize   PFree
  /dev/mapper/mpath0p1 vg001     lvm2 a--    2.79g 600.00m
  /dev/mapper/mpath1p1 vg001     lvm2 a--    2.79g   2.79g
  /dev/sdb1            vg001     lvm2 a--    2.79g   2.79g
  /dev/sdc1            vg001     lvm2 a--    2.79g      0
```
ユーザアクセスへの影響を減らすために**移行速度に対して制約を掛ける場合には、ONTAPのQoSを利用**し移行先のLUNへの帯域制限を実施する事で実現できます。
(移行後にQoS解除等の操作は必要)

以下はONTAPのLUNにQoSを設定後にpvmoveを実行した際のVolumeのThroughputを確認した例になります。

```bash:
# QoS Policyの作成
> qos policy-group create -policy-group migration-policy -vserver vs_iscsi01 -is-shared false -max-throughput  20mbps

> qos policy-group show -policy-group migration-policy

              Policy Group Name: migration-policy
                        Vserver: vs_iscsi01
                           Uuid: 34b79c24-4fd0-11ef-xxxxxx
             Policy Group Class: user-defined
                Policy Group ID: 13966
             Maximum Throughput: 20MB/s
             Minimum Throughput: 0
            Number of Workloads: 1
              Throughput Policy: 0-20MB/s
                      Is Shared: false
       Is Policy Auto Generated: -

       
# LUNに作成したQoS Policyの設定(SVMやVolumeのQoSはnoneに変更済)
> lun modify -vserver vs_iscsi01 -path /vol/iscsi02/lun02 -qos-policy-group migration-policy


# pvmove実行中のONTAP上のLUNへのThroughput確認
# LUNの作成されているVolumeの　Throughputが20MB/secで推移している事が確認できる
> qos statistics volume characteristics show -vserver vs_iscsi01  -volume iscsi02
Workload            ID     IOPS       Throughput Request Size Read Concurrency
--------------- ------ -------- ---------------- ------------ ---- -----------
-total-              -      321        20.00MB/s       65331B   0%          13
iscsi02-wid20..  20303      320        20.00MB/s       65536B   0%          13
-total-              -      323        20.19MB/s       65536B   3%          11
iscsi02-wid20..  20303      317        19.81MB/s       65536B   1%          11
-total-              -      320        20.00MB/s       65536B   0%          12
iscsi02-wid20..  20303      320        20.00MB/s       65536B   0%          12
-total-              -      323        20.19MB/s       65536B   0%          14
iscsi02-wid20..  20303      323        20.19MB/s       65536B   0%          14
(中略)
```


### 4. 既存のLUNのやiSCSI設定の削除処理


#### 4-1. 既存Physical volumeをVolume Groupから削除
移行前に使っていたPhysical volume(移行元LUN)をVolume Groupから削除します。

<img width="350" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/bbf7496d-15b7-d9d0-1686-c35eab72ab9e.png>


```bash:
# Volume GroupからPhysical volumeを削除
> vgreduce vg001 /dev/sdb1
  Removed "/dev/sdb1" from volume group "vg001"
  
> vgreduce vg001 /dev/sdc1
  Removed "/dev/sdc1" from volume group "vg001"

# VG Sizeが小さくなっている事の確認
> vgdisplay
  --- Volume group ---
  VG Name               vg001
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  14
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <5.59 GiB
  PE Size               4.00 MiB
  Total PE              1430
  Alloc PE / Size       1280 / 5.00 GiB
  Free  PE / Size       150 / 600.00 MiB
  VG UUID               LPPMTp-nXAL-HA82-s24A-FNF8-d6Fk-4m6mf1
  (中略)
```
#### 4-2. Physical volumeを削除

Volume Groupから削除したPhysical volumeを削除を削除します。
(削除対象分実施します)

<img width="350" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/e1c00f9d-272f-edf1-ed39-aff2a7066ddd.png>

```bash:
# Physical volumeを削除
> pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped
```


#### 4-3. デバイス設定及びiSCSI設定を削除

認識しているデバイスのパーティション削除及びSolidfireから認識しているiSCSI経路を削除します。
(削除対象分実施します)

<img width="350" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/2dfc4327-95fa-91b4-8e1e-a7de6fbfc4b6.png>


```bash:
# パーティションを削除
> fdisk /dev/sdb

fdisk (util-linux 2.37.4) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。

コマンド (m でヘルプ): d
パーティション 1 を選択
パーティション 1 を削除しました。

コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。

#Linux上で認識しているSolidfireデバイスの削除
>  echo offline > /sys/block/sdb/device/state
>  echo 1 > /sys/block/sdb/device/delete
```



LinuxとSolidfire間で設定していたiSCSI接続の解除及び削除を実施します。
Solidfireの場合は接続しているLUN数分の削除処理が必要になります。
```bash:
# 現状の確認
> iscsiadm --mode session
tcp: [1] 172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol01.7 (non-flash)
tcp: [2] 172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol02.8 (non-flash)
tcp: [3] 172.16.22.13:3260,1032 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8 (non-flash)
tcp: [4] 172.16.22.14:3260,1033 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8 (non-flash)

> iscsiadm --mode node
172.16.22.13:3260,1032 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8
172.16.22.14:3260,1033 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8
172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol01.7
172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol02.8


# iSCSI Target(Solidfire)からのLogout
> iscsiadm --mode node --target iqn.2010-01.com.solidfire:1ikc.linuxvol01.7 --logout
Logging out of session [sid: 1, target: iqn.2010-01.com.solidfire:1ikc.linuxvol01.7, portal: 172.16.22.15,3260]
Logout of [sid: 1, target: iqn.2010-01.com.solidfire:1ikc.linuxvol01.7, portal: 172.16.22.15,3260] successful.

# Logout後のSession情報の確認
> iscsiadm --mode session
tcp: [2] 172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol02.8 (non-flash)
tcp: [3] 172.16.22.13:3260,1032 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8 (non-flash)
tcp: [4] 172.16.22.14:3260,1033 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8 (non-flash)


# iSCSI Target情報の削除
> iscsiadm --mode node --target iqn.2010-01.com.solidfire:1ikc.linuxvol01.7 --op delete

# 削除後のTarget情報の確認
> iscsiadm --mode node
172.16.22.13:3260,1032 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8
172.16.22.14:3260,1033 iqn.1992-08.com.netapp:sn.814b2072347111efb600d039ea5905a2:vs.8
172.16.22.15:3260,1 iqn.2010-01.com.solidfire:1ikc.linuxvol02.8
```

## 参考及びリンク
[How to setup an optimal iSCSI connection from Linux with ONTAP ](https://kb.netapp.com/on-prem/ontap/OHW/OHW-KBs/How_to_setup_an_optimal_iSCSI_connection_from_Linux_with_ONTAP)

[ONTAP SAN how to check Linux iSCSI paths](https://kb.netapp.com/on-prem/ontap/OHW/OHW-KBs/ONTAP_SAN_how_to_check_Linux_iSCSI_paths)

[【今から覚えるONTAPの操作】iSCSI用のSVMを作成する](https://qiita.com/s_yosh1d/items/b2ca28c542dfa6df0629)