今回はRHELにおいて、iSCSIイニシエータの設定を行いiSCSIストレージを認識させ、さらにDM-multipathを使ったマルチパス設定の手順検証をしてみた。
環境
- OS:Red Hat Enterprise Linux 7.6
- iSCSIターゲット:QNAP NAS
- iSCSIディスク:5GB、2GB、1GBの3つ
iSCSI (iscsi-initiator-utils) の設定
1. 「iscsi-initiator-utils」をインストール
RHELでiSCSIを認識させるため、「iscsi-initiator-utils」をインストールする。「iscsi-initiator-utils」を使うためには、iscsi-initiator-utilsとiscsi-initiator-utils-iscsiuioの2つのパッケージをインストールする必要がある。# rpm -ivh iscsi-initiator-utils-6.2.0.874-10.el7.x86_64.rpm iscsi-initiator-utils-iscsiuio-6.2.0.874-10.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:iscsi-initiator-utils-iscsiuio-6.################################# [ 50%]
2:iscsi-initiator-utils-6.2.0.874-1################################# [100%]
2. イニシエータのiqnの確認
イニシエータのiqnは/etc/iscsi/initiatorname.iscsi
に記載される。これを確認し必要に応じて修正して、ストレージ側でアクセス許可を設定しておく。# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:9122a7a91a1
なお、今回はQNAPでiSCSIターゲットの設定をしているが、手順は割愛する。3. ターゲットを登録
iSCSIの各種設定はiscsiadm
コマンドで行う。まずは、ターゲットの検出を行う。
-t st
は「sendtargets」の略となり、-p
でターゲットのIPアドレスを指定する。# iscsiadm -m discovery -t st -p 192.168.11.13
192.168.33.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.t3013qnap.06d5ba
192.168.11.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.t3013qnap.06d5ba
192.168.33.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.target.06d5ba
192.168.11.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.target.06d5ba
登録されたターゲットの確認コマンドはiscsiadm -m node
となる。# iscsiadm -m node
192.168.33.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.t3013qnap.06d5ba
192.168.11.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.t3013qnap.06d5ba
192.168.33.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.target.06d5ba
192.168.11.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.target.06d5ba
4. ターゲットにログイン
iscsiサービスはターゲットが登録されていない場合、起動しない設定となっている。# systemctl status iscsi
● iscsi.service - Login and scanning of iSCSI devices
Loaded: loaded (/usr/lib/systemd/system/iscsi.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Condition: start condition failed at 金 2020-03-20 14:43:08 JST; 6min ago
none of the trigger conditions were met
Docs: man:iscsid(8)
man:iscsiadm(8)
ターゲット登録後はiscsiサービスを起動させることができる。iscsiサービスを起動すると、登録されたターゲットに自動ログインする。# systemctl start iscsi
# systemctl status iscsi
● iscsi.service - Login and scanning of iSCSI devices
Loaded: loaded (/usr/lib/systemd/system/iscsi.service; enabled; vendor preset: disabled)
Active: active (exited) since 金 2020-03-20 14:50:30 JST; 1s ago
Docs: man:iscsid(8)
man:iscsiadm(8)
Process: 16041 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS)
Process: 16038 ExecStart=/usr/libexec/iscsi-mark-root-nodes (code=exited, status=0/SUCCESS)
Main PID: 16041 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/iscsi.service
3月 20 14:50:30 localhost.localdomain iscsi-mark-root-nodes[16038]: iscsiad...
3月 20 14:50:30 localhost.localdomain systemd[1]: Started Login and scannin...
3月 20 14:50:30 localhost.localdomain iscsiadm[16041]: Logging in to [iface...
~(以下略)~
ターゲットへのログイン状態の確認コマンドはiscsiadm -m session
となる。# iscsiadm -m session
tcp: [1] 192.168.33.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.t3013qnap.06d5ba (non-flash)
tcp: [2] 192.168.11.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.t3013qnap.06d5ba (non-flash)
tcp: [3] 192.168.33.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.target.06d5ba (non-flash)
tcp: [4] 192.168.11.13:3260,1 iqn.2004-04.com.qnap:ts-231p:iscsi.target.06d5ba (non-flash)
5, ディスクの認識状況を確認
OSにてiSCSIのディスクを認識するはずなので、ログから確認しておく。今回の環境では、3つのディスクが2パスのマルチパス構成となっていることから、sdb、sdc、sdd、sde、sdf、sdgの計6個のディスクが認識される。# cat /var/log/messages | grep SCSI
~(中略)~
Mar 20 14:50:30 localhost kernel: scsi 35:0:0:0: Direct-Access QNAP iSCSI Storage 4.0 PQ: 0 ANSI: 5
Mar 20 14:50:30 localhost kernel: scsi 36:0:0:0: Direct-Access QNAP iSCSI Storage 4.0 PQ: 0 ANSI: 5
Mar 20 14:50:30 localhost kernel: scsi 35:0:0:2: Direct-Access QNAP iSCSI Storage 4.0 PQ: 0 ANSI: 5
Mar 20 14:50:30 localhost kernel: scsi 36:0:0:2: Direct-Access QNAP iSCSI Storage 4.0 PQ: 0 ANSI: 5
Mar 20 14:50:30 localhost kernel: scsi 35:0:0:1: Direct-Access QNAP iSCSI Storage 4.0 PQ: 0 ANSI: 5
Mar 20 14:50:30 localhost kernel: scsi 36:0:0:1: Direct-Access QNAP iSCSI Storage 4.0 PQ: 0 ANSI: 5
Mar 20 14:50:30 localhost systemd: Started Login and scanning of iSCSI devices.
Mar 20 14:50:30 localhost kernel: sd 36:0:0:1: [sdg] Attached SCSI disk
Mar 20 14:50:30 localhost kernel: sd 35:0:0:1: [sdf] Attached SCSI disk
Mar 20 14:50:30 localhost kernel: sd 36:0:0:2: [sde] Attached SCSI disk
Mar 20 14:50:30 localhost kernel: sd 35:0:0:2: [sdd] Attached SCSI disk
Mar 20 14:50:31 localhost kernel: sd 36:0:0:0: [sdc] Attached SCSI disk
Mar 20 14:50:31 localhost kernel: sd 35:0:0:0: [sdb] Attached SCSI disk
マルチパス (DM-multipath) の設定
ここまでの手順でiSCSIのディスクを認識させることができたが、同一ディスクを複数ディスクとして認識してしまっているため、「DM-multipath」にてマルチパス設定を行う。1. 「DM-multipath」をインストール
# rpm -vih device-mapper-multipath-0.4.9-123.el7.x86_64.rpm device-mapper-multipath-libs-0.4.9-123.el7.x86_64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:device-mapper-multipath-libs-0.4.################################# [ 50%]
2:device-mapper-multipath-0.4.9-123################################# [100%]
2. multipath.confを作成
# multipath -ll
Mar 20 15:19:50 | DM multipath kernel driver not loaded
Mar 20 15:19:50 | /etc/multipath.conf does not exist, blacklisting all devices.
Mar 20 15:19:50 | A default multipath.conf file is located at
Mar 20 15:19:50 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Mar 20 15:19:50 | You can run /sbin/mpathconf --enable to create
Mar 20 15:19:50 | /etc/multipath.conf. See man mpathconf(8) for more details
Mar 20 15:19:50 | DM multipath kernel driver not loaded
# ls -l /etc/multipath.conf
ls: /etc/multipath.conf にアクセスできません: そのようなファイルやディレクトリはありません
# mpathconf --enable --with_multipathd y
# ls -l /etc/multipath.conf
-rw-------. 1 root root 2415 3月 20 15:27 /etc/multipath.conf
3. ストレージ用の設定をmultipath.confに追記
大抵のストレージにおいてはDM-multipathの推奨設定が公開されており、必要とされる場合はmultipath.confに設定を追記する必要がある。なお、DM-multipathに設定済みのストレージも多数あり、その設定はmultipath -t
にて確認できる。例えばNetAppの設定が組み込み済みであることが、以下の通り確認できる。[root@localhost ~]# multipath -t
~(中略)~
device {
vendor "NETAPP"
product "LUN.*"
path_grouping_policy "group_by_prio"
path_checker "tur"
features "3 queue_if_no_path pg_init_retries 50"
hardware_handler "0"
prio "ontap"
failback immediate
rr_weight "uniform"
rr_min_io 128
flush_on_last_del "yes"
dev_loss_tmo "infinity"
user_friendly_names no
retain_attached_hw_handler yes
detect_prio yes
}
~(以下略)~
QNAPの場合は、以下URLに推奨されるマルチパス設定が記載されている。ただし、上記は
defaults
設定を書き換える手順となっているため、少し修正して、QNAPのストレージのみに設定がされるよう、以下の通りdevice
設定を追加する。# cat /etc/multipath.conf | grep -v -e "^#" -e "^$"
~(中略)~
devices {
device {
vendor "QNAP"
product "iSCSI Storage"
user_friendly_names yes
path_selector "round-robin 0"
path_grouping_policy multibus
uid_attribute ID_SERIAL
prio alua
path_checker readsector0
rr_min_io 100
rr_weight priorities
failback immediate
no_path_retry fail
}
}
~(以下略)~
4. 設定反映
設定反映のため、DM-multipathのサービスを再起動する。# systemctl restart multipathd
通常これだけで、マルチパスのディスクを自動認識するはずだ。以下の通り、mpatha、mpathb、mpathcの3つのiSCSIディスクを認識していることがわかる。# multipath -ll
mpathc (36e843b6ffaab030d3806d4741db0c1d5) dm-3 QNAP ,iSCSI Storage
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
|- 35:0:0:2 sdd 8:48 active ready running
`- 36:0:0:2 sde 8:64 active ready running
mpathb (36e843b658a5009cd6630d4824d923fde) dm-4 QNAP ,iSCSI Storage
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
|- 35:0:0:1 sdf 8:80 active ready running
`- 36:0:0:1 sdg 8:96 active ready running
mpatha (36e843b6fcf19e40dadaed44f9d978ad1) dm-2 QNAP ,iSCSI Storage
size=5.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
|- 35:0:0:0 sdc 8:32 active ready running
`- 36:0:0:0 sdb 8:16 active ready running
5. ファイルシステムのとしてフォーマット
後は通常のディスクと同様、パーティションを作成し、ファイルシステムとしてフォーマットする。指定するストレージデバイスは、/dev/mapper/mpathN
(Nはアルファベット連番(a,b,c,…)) となる。以前記載した以下記事通りに作成すればよい。
# dev="/dev/mapper/mpathc"
# parted -s ${dev} "mklabel gpt mkpart ' ' 0% 100% set 1 lvm on print"
モデル: Linux device-mapper (multipath) (dm)
ディスク /dev/mapper/mpathc: 1074MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 1073MB 1072MB lvm
# pvcreate "${dev}1"
Physical volume "/dev/mapper/mpathc1" successfully created.
# vgcreate "vg_${dev##*/}1" "${dev}1"
Volume group "vg_mpathc1" successfully created
# lvcreate -n "lv_${dev##*/}1" -l 100%FREE "vg_${dev##*/}1"
Logical volume "lv_mpathc1" created.
# mkfs.xfs /dev/"vg_${dev##*/}1"/"lv_${dev##*/}1"
meta-data=/dev/vg_mpathc1/lv_mpathc1 isize=512 agcount=8, agsize=32640 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=261120, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
/mntにマウントしてみる。# mount /dev/mapper/"vg_${dev##*/}1"-"lv_${dev##*/}1" /mnt/
# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/rhel-root 14G 1.1G 13G 8% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.9M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/vg_mpathc1-lv_mpathc1 1017M 33M 985M 4% /mnt
0 件のコメント:
コメントを投稿