QRadar iSCSI Multipath
環境
QRadar 7.5 AIO
目的
QRadar SIEMのデータ保存領域(/store/backup)を外部ストレージに移行することにより、冗長性の担保および大容量スペースを確保することを目的とする
QRadar のiSCSI関連ドキュメント
以下の2つのドキュメントのみ公開されており、iSCSIのマルチパスは存在せず
手順
1. /store/backupの変更
これからiscsiとする領域のディレクトリを名前を変えて退避
[root@QRadar ~]# mv /store/backup /store/local.backup
2. IQNの確認
ストレージ側にて接続許可対象とするIQNを確認する。以下はデフォルト値なので変更も可。
1994-05(yyyy-mm)の部分は実際に構築した年-月とすることが一般的
[root@QRadar ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:f99999999
3. Discoveryコマンドにてmultipathターゲットを検索
以下の例は6つのターゲットがある状態。数はストレージベンダーにより可変
[root@QRadar ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.1
192.168.1.1:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名]
192.168.1.2:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名]
192.168.1.3:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名]
192.168.1.4:3260,4099 iqn.yyy-mm.com.[ストレージホスト名]
192.168.1.5:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名]
192.168.1.6:3260,4099 iqn.yyy-mm.com.[ストレージホスト名]
4. multipathターゲットへのログイン
利用できるようにログインしておきます
[root@QRadar ~]# iscsiadm -m node --login
Logging in to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.1,3260] (multiple)
Logging in to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.2,3260] (multiple)
Logging in to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.3,3260] (multiple)
Logging in to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.4,3260] (multiple)
Logging in to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.5,3260] (multiple)
Logging in to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.6,3260] (multiple)
Login to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.1,3260] successful.
Login to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.2,3260] successful.
Login to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.3,3260] successful.
Login to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.4,3260] successful.
Login to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.5,3260] successful.
Login to [iface: default, target: iqn.yyyy-mm.com.[ストレージホスト名], portal: 192.168.1.6,3260] successful.
5. multipathセッションの確認
multipathセッションの確認を行います
[root@svqr07 dev]# iscsiadm -m session
tcp: [1] 192.168.1.1:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名] (non-flash)
tcp: [2] 192.168.1.2:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名](non-flash)
tcp: [3] 192.168.1.3:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名] (non-flash)
tcp: [4] 192.168.1.4:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名] (non-flash)
tcp: [5] 192.168.1.5:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名] (non-flash)
tcp: [6] 192.168.1.6:3260,4099 iqn.yyyy-mm.com.[ストレージホスト名] (non-flash)
6. multipath.confの生成
multipathのサービスを開始するためには、コンフィグが必要となります
[root@QRadar]# vi /etc/multipath.conf
以下を貼り付けます
defaults {
user_friendly_names yes
find_multipaths yes
}
blacklist {
}
7. multipathサービス自動起動有効化及び開始
サービスがLoaded,active(running)になっていることを確認します
[root@QRadar]# systemctl enable multipathd.service
[root@QRadar]# systemctl start multipathd.service
[root@QRadar]# systemctl status multipathd.service
● multipathd.service - Device-Mapper Multipath Device Controller
Loaded: loaded (/usr/lib/systemd/system/multipathd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-10-26 16:08:39 JST; 2s ago
Process: 4135 ExecStart=/sbin/multipathd (code=exited, status=0/SUCCESS)
Process: 4131 ExecStartPre=/sbin/multipath -A (code=exited, status=0/SUCCESS)
Process: 4126 ExecStartPre=/sbin/modprobe dm-multipath (code=exited, status=0/SUCCESS)
Main PID: 4137 (multipathd)
Tasks: 7
Memory: 2.7M
CGroup: /system.slice/multipathd.service
mq4137 /sbin/multipathd
Oct 26 16:08:39 QRadar.localhost.com systemd[1]: Starting Device-Mapper Multipath Device Controller...
Oct 26 16:08:39 QRadar.localhost.com systemd[1]: Started Device-Mapper Multipath Device Controller.
Oct 26 16:08:39 QRadar.localhost.com multipathd[4137]: mpatha: load table [0 3145728000 multipath 0 0 1 1 round-robin 0 6 1 8:16 50 8:32 50 8:48 50...8:96 50]
Oct 26 16:08:39 QRadar.localhost.com multipathd[4137]: mpatha: event checker started
Oct 26 16:08:39 QRadar.localhost.com multipathd[4137]: path checkers start up
Hint: Some lines were ellipsized, use -l to show in full.
8. 仮想デバイス名の確認
このコマンドでmultipathの仮想デバイスの名前(例:mpatha)を確認する
[root@QRadar]# multipath -ll
mpatha (36742b0f000000d37000000000003fc9d) dm-16 [ストレージベンダ],[ストレージ名]
size=1.5T features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
|- 3:0:0:1 sdb 8:16 active ready running
|- 4:0:0:1 sdc 8:32 active ready running
|- 5:0:0:1 sdd 8:48 active ready running
|- 6:0:0:1 sde 8:64 active ready running
|- 7:0:0:1 sdf 8:80 active ready running
`- 8:0:0:1 sdg 8:96 active ready running
9. パーティション作成
[root@QRadar]# parted /dev/mapper/mpatha
GNU Parted 3.1
Using /dev/mapper/mpatha
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) unit TB
(parted) print
Model: Linux device-mapper (multipath) (dm)
Disk /dev/mapper/mpatha: 1.61TB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 0.00TB 1.61TB 1.61TB primary
(parted) quit
Information: You may need to update /etc/fstab.
10. 新しいパーティションのデータでカーネル更新
partprobe /dev/<volume>
11. 生成されたパーティション名を確認
multipath対象ターゲットを見つける。TYPEがmpathに紐づくpart。以下の例では、mptha1
[root@QRadar]# lsblk -ip
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda 8:0 0 1.2T 0 disk
|-/dev/sda1 8:1 0 1M 0 part
|-/dev/sda2 8:2 0 1G 0 part /boot
|-/dev/sda3 8:3 0 32G 0 part /recovery
|-/dev/sda4 8:4 0 1T 0 part
| |-/dev/mapper/storerhel-transient 253:8 0 211.2G 0 lvm /transient
| `-/dev/mapper/storerhel-store 253:9 0 844.8G 0 lvm /store
|-/dev/sda5 8:5 0 67G 0 part
| |-/dev/mapper/rootrhel-root 253:0 0 12.5G 0 lvm /
| |-/dev/mapper/rootrhel-storetmp 253:1 0 15G 0 lvm /storetmp
| |-/dev/mapper/rootrhel-tmp 253:2 0 3G 0 lvm /tmp
| |-/dev/mapper/rootrhel-home 253:3 0 1G 0 lvm /home
| |-/dev/mapper/rootrhel-opt 253:4 0 12.5G 0 lvm /opt
| |-/dev/mapper/rootrhel-varlogaudit 253:5 0 3G 0 lvm /var/log/a
| |-/dev/mapper/rootrhel-varlog 253:6 0 15G 0 lvm /var/log
| `-/dev/mapper/rootrhel-var 253:7 0 5G 0 lvm /var
`-/dev/sda6 8:6 0 24G 0 part [SWAP]
/dev/sdb 8:16 0 1.5T 0 disk
`-/dev/mapper/mpatha 253:16 0 1.5T 0 mpath
`-/dev/mapper/mpatha1 253:17 0 1.5T 0 part
/dev/sdc 8:32 0 1.5T 0 disk
`-/dev/mapper/mpatha 253:16 0 1.5T 0 mpath
`-/dev/mapper/mpatha1 253:17 0 1.5T 0 part
/dev/sdd 8:48 0 1.5T 0 disk
`-/dev/mapper/mpatha 253:16 0 1.5T 0 mpath
`-/dev/mapper/mpatha1 253:17 0 1.5T 0 part
/dev/sde 8:64 0 1.5T 0 disk
`-/dev/mapper/mpatha 253:16 0 1.5T 0 mpath
`-/dev/mapper/mpatha1 253:17 0 1.5T 0 part
/dev/sdf 8:80 0 1.5T 0 disk
`-/dev/mapper/mpatha 253:16 0 1.5T 0 mpath
`-/dev/mapper/mpatha1 253:17 0 1.5T 0 part
/dev/sdg 8:96 0 1.5T 0 disk
`-/dev/mapper/mpatha 253:16 0 1.5T 0 mpath
`-/dev/mapper/mpatha1 253:17 0 1.5T 0 part
/dev/sr0 11:0 1 1024M 0 rom
/dev/loop0 7:0 0 100G 0 loop
`-/dev/mapper/docker-253:9-1075429704-pool 253:10 0 100G 0 dm
|-/dev/mapper/docker-253:9-1075429704-2853e4e0745f773a5567596e3bc39ca2ebe53ec6
253:11 0 10G 0 dm /store/doc
|-/dev/mapper/docker-253:9-1075429704-53580bf28b93ce7cdec25fb1acabcc7b579ac136
253:12 0 10G 0 dm /store/doc
|-/dev/mapper/docker-253:9-1075429704-5a9abe7b2f145d4fd68bbeb04f9032454f5b06d1
253:13 0 10G 0 dm /store/doc
|-/dev/mapper/docker-253:9-1075429704-55ce31fc58b66126f19ee4f495e885701484f3a7
253:14 0 10G 0 dm /store/doc
`-/dev/mapper/docker-253:9-1075429704-87ab6245400e4c836740449865a1ac7b27a76f3b
253:15 0 10G 0 dm /store/doc
/dev/loop1 7:1 0 2G 0 loop
`-/dev/mapper/docker-253:9-1075429704-pool 253:10 0 100G 0 dm
|-/dev/mapper/docker-253:9-1075429704-2853e4e0745f773a5567596e3bc39ca2ebe53ec6
253:11 0 10G 0 dm /store/doc
|-/dev/mapper/docker-253:9-1075429704-53580bf28b93ce7cdec25fb1acabcc7b579ac136
253:12 0 10G 0 dm /store/doc
|-/dev/mapper/docker-253:9-1075429704-5a9abe7b2f145d4fd68bbeb04f9032454f5b06d1
253:13 0 10G 0 dm /store/doc
|-/dev/mapper/docker-253:9-1075429704-55ce31fc58b66126f19ee4f495e885701484f3a7
253:14 0 10G 0 dm /store/doc
`-/dev/mapper/docker-253:9-1075429704-87ab6245400e4c836740449865a1ac7b27a76f3b
253:15 0 10G 0 dm /store/doc
12. パーティションをxfs形式でフォーマット
[root@QRadar]# mkfs.xfs -f /dev/mapper/mpatha1
meta-data=/dev/mapper/mpatha1 isize=512 agcount=32, agsize=12287984 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=393215488, imaxpct=5
= sunit=16 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=192000, version=2
= sectsz=512 sunit=16 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
13. UUID確認
以下の例は、UUIDを9だけでマスキングしているため実際はランダムな値が入る
[root@QRadar]# blkid /dev/mapper/mpatha1
/dev/mapper/mpatha1: UUID="99999999-9999-9999-9999-999999999999" TYPE="xfs" PART
14. fstabの編集
以下の1行を追加してfstabを保存する
※noautoを消してはいけない。OSが起動してこなくなってしまう
[root@QRadar]# vi /etc/fstab
~
UUID=99999999-9999-9999-9999-999999999999 /store/backup xfs inode64,logbsize=256
k,noatime,noauto,nobarrier 0 0
~
15. iscsi用ディレクトリ再作成
mkdir /store/backup
16. iscsiサービス自動起動有効化
OS再起動したときに、multipathサービスの前に起動が必要なため
[root@QRadar]# systemctl enable iscsi
[root@QRadar]# systemctl enable iscsi-mount
確認したこと
- QRadar (RHEL)再起動してもiSCSIマウント外れず正常稼働する
- QRadarのバージョンを7.4.3から7.5へのバージョンアップしてiSCSIマウントが外れず正常稼働する
- QRadarに対してパッチを当ててもiSCSIマウントが外れず正常稼働する
sdxがどのような用途で利用されているかの確認
sda: failed to get udev uid: Invalid argument のようなメッセージ出力が確認された場合に、multipath.confでsda等を無効化する
[root@QRadar~]# lsblk -S
NAME HCTL TYPE VENDOR MODEL REV TRAN
sda 0:0:0:0 disk VMware Virtual disk 2.0
sdb 3:0:0:1 disk [ストレージホスト名] 0h iscsi
sdc 4:0:0:1 disk [ストレージホスト名] 0h iscsi
sdd 5:0:0:1 disk [ストレージホスト名] 0h iscsi
sde 6:0:0:1 disk [ストレージホスト名] 0h iscsi
sdf 7:0:0:1 disk [ストレージホスト名] 0h iscsi
sdg 8:0:0:1 disk [ストレージホスト名] 0h iscsi
sr0 1:0:0:0 rom NECVMWar VMware IDE CDR00 1.00 ata