【手順】iSCSIでボリュームアタッチ

手順概要

  1. ボリューム作成&アタッチ(コンソール)
  2. フォーマット&マウント(OS)
  3. デタッチ&アンマウント(OS)

1. ボリューム作成&アタッチ(コンソール)

1-1. ボリューム作成

OREOという名前のボリュームを作成
f:id:meisou-tsuru:20211009170628p:plain

1-2. ボリュームのアタッチ

先ほどのOREOをvm21というインスタンスにアタッチ。
アタッチ方法:iSCSI
バイスパス:/dev/oracleoci/oraclevdb
f:id:meisou-tsuru:20211009170949p:plain
f:id:meisou-tsuru:20211009171130p:plain
アタッチすると、注意事項が表示される。
*デタッチする前に、ドライブをアンマウントしてから切断コマンドを実行する必要があり、そうでない場合、インスタンスの再起動が失敗します。
*このボリュームをインスタンスのetc/fstabファイルに追加して起動時に自動的にマウントする場合、_netdevおよびnofailオプションを含める必要があります。


アタッチが完了すると「アタッチされたブロックボリューム」のエリアにOREOが表示されるようになる。トリコロンをクリックして、iSCSIコマンドをコピーしておく。
f:id:meisou-tsuru:20211009171740p:plain
f:id:meisou-tsuru:20211009172004p:plain

2. フォーマット&マウント(OS)

2-1. 初期状態の確認

最初に現在の状態を確認しておく。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         7.2G     0  7.2G    0% /dev
tmpfs            7.2G     0  7.2G    0% /dev/shm
tmpfs            7.2G  8.8M  7.2G    1% /run
tmpfs            7.2G     0  7.2G    0% /sys/fs/cgroup
/dev/sda3         39G  5.6G   33G   15% /
/dev/sda1        200M  7.5M  193M    4% /boot/efi
tmpfs            1.5G     0  1.5G    0% /run/user/0
tmpfs            1.5G     0  1.5G    0% /run/user/994
tmpfs            1.5G     0  1.5G    0% /run/user/1000

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0 46.6G  0 disk
├─sda2   8:2    0    8G  0 part [SWAP]
├─sda3   8:3    0 38.4G  0 part /
└─sda1   8:1    0  200M  0 part /boot/efi

lsblkは利用可能なブロックデバイスをツリー状で表示してくれるコマンド。 RM=リムーバブル (1=リムーバブル)
RO=ReadOnly (1=ReadOnly)

2-2. アタッチしたデバイスにアクセス

1-2.でコピーしておいたアタッチコマンドを3つとも実行。

$ sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec -p 169.254.2.3:3260
New iSCSI node [tcp:[hw=,ip=,net_if=,iscsi_if=default] 169.254.2.3,3260,-1 iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec] added

$ sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec -n node.startup -v automatic

$ sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec -p 169.254.2.3:3260 -l
Logging in to [iface: default, target: iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec, portal: 169.254.2.3,3260] (multiple)
Login to [iface: default, target: iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec, portal: 169.254.2.3,3260] successful.


もう一度、lsblkでブロックデバイスを確認してみる。一段目にsdbが新たに表示されるようになっている。OSから新しくブロックデバイスが認識されていることが分かるが、まだマウントされていないのでマウントポイントは空欄。

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0   50G  0 disk
sda      8:0    0 46.6G  0 disk
├─sda2   8:2    0    8G  0 part [SWAP]
├─sda3   8:3    0 38.4G  0 part /
└─sda1   8:1    0  200M  0 part /boot/efi


2-3. パーティション作成

現在のパーティション情報を確認しておく。
/dev/sdaは、パーティションテーブルがGPTでファイルシステムはxfs。GPTは従来のMBRよりいい感じのパーティション管理ができるやつで、xfsも何かいい感じのファイルシステムのこと。詳しいことは何度調べても忘れてしまうので「いい感じのやつ」で済ませています。
/dev/sdbにはまだパーティションを作成していない。この状態だと「ディスクラベルが認識できません」と言われるようだ。

$ sudo parted -l
モデル: ORACLE BlockVolume (scsi)
ディスク /dev/sda: 50.0GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前                  フラグ
 1    1049kB  211MB   210MB   fat16             EFI System Partition  boot
 2    211MB   8801MB  8590MB  linux-swap(v1)
 3    8801MB  50.0GB  41.2GB  xfs


エラー: /dev/sdb: ディスクラベルが認識できません。
モデル: ORACLE BlockVolume (scsi)
ディスク /dev/sdb: 53.7GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: unknown
ディスクフラグ:


partedコマンドを使ってパーティションを作成。マニュアルにあったコマンドをそのまま実行。

$ sudo parted -s -a optimal /dev/sdb mklabel gpt mkpart primary 0% 100%


作成したパーティションの確認。sdb1としてパーティションが作成されている。

$ sudo parted /dev/sdb print
モデル: ORACLE BlockVolume (scsi)
ディスク /dev/sdb: 53.7GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前     フラグ
 1    1049kB  53.7GB  53.7GB                    primary


$ sudo lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0   50G  0 disk
└─sdb1   8:17   0   50G  0 part
sda      8:0    0 46.6G  0 disk
├─sda2   8:2    0    8G  0 part [SWAP]
├─sda3   8:3    0 38.4G  0 part /
└─sda1   8:1    0  200M  0 part /boot/efi


2-4. ファイルシステム作成

xfsでファイルシステムを作成。

$ sudo mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=3276672 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=0        finobt=0, sparse=0, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=13106688, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=6399, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0


マウントポイント作成

$ sudo mkdir /mnt/bv1
$ sudo chown opc:opc /mnt/bv1


fstabに登録するため、UUIDを確認しておく。

$ lsblk -o +UUID
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT UUID
sdb      8:16   0   50G  0 disk
└─sdb1   8:17   0   50G  0 part            bf1fd487-4867-4a16-b12d-a75743db3259
sda      8:0    0 46.6G  0 disk
├─sda2   8:2    0    8G  0 part [SWAP]     5901d603-d1bb-44d2-8b04-5189dbe331d2
├─sda3   8:3    0 38.4G  0 part /          efa8c2db-9721-448e-81db-ef48a83416ca
└─sda1   8:1    0  200M  0 part /boot/efi  1F17-62E7


/etc/fstab編集

$ sudo vi /etc/fstab

(以下を追記)
UUID=bf1fd487-4867-4a16-b12d-a75743db3259 /mnt/bv1 xfs defaults,_netdev,nofail 0 2


/etc/fstabの設定を反映

$ sudo mount -a


dfコマンドで確認。/dev/sdb1のマウントポイントが/mnt/bv1であることが確認できる。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         7.2G     0  7.2G    0% /dev
tmpfs            7.2G     0  7.2G    0% /dev/shm
tmpfs            7.2G  8.8M  7.2G    1% /run
tmpfs            7.2G     0  7.2G    0% /sys/fs/cgroup
/dev/sda3         39G  5.6G   33G   15% /
/dev/sda1        200M  7.5M  193M    4% /boot/efi
tmpfs            1.5G     0  1.5G    0% /run/user/0
tmpfs            1.5G     0  1.5G    0% /run/user/994
tmpfs            1.5G     0  1.5G    0% /run/user/1000
/dev/sdb1         50G   33M   50G    1% /mnt/bv1


3. デタッチ&アンマウント(OS)

1-2.でコピーしておいたデタッチコマンドを2つとも実行。

$ sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec -p 169.254.2.3:3260 -u
Logging out of session [sid: 1, target: iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec, portal: 169.254.2.3,3260]
Logout of [sid: 1, target: iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec, portal: 169.254.2.3,3260] successful.

$ sudo iscsiadm -m node -o delete -T iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec -p 169.254.2.3:3260


一応、discoveryでターゲットを検索してみる。

$ sudo iscsiadm -m discovery -t iqn.2015-12.com.oracleiaas:38901350-d5d5-420e-8b89-746e96fdd5ec -p 169.254.2.3:3260
iscsiadm: Discovery record [169.254.2.3,3260] not found!


アンマウント

$ sudo umount /mnt/bv1
/*** Original ***/