変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

iSCSI

[AlmaLinux]iSCSIデバイスを使う

NASでターゲットの使用許可したIQNを Linux側のIQNとして設定する

# dnf -y install iscsi-initiator-utils

# vi /etc/iscsi/initiatorname.iscsi
InitiatorName = {Linux側のIQN名}

NASに作成したiSCSIデバイスをLinuxから探してみる

# iscsiadm -m discovery -t sendtargets -p {NASのIPアドレス:ポート} ※{ポートは3260}
{NASのIPアドレス:ポート},1 {ターゲット名1}  ※ターゲット名形式:iqn.yyyy-mm.naming-authority:uniqueName
・・・
{NASのIPアドレス:ポート},1 {ターゲット名x} ←今回のターゲット
・・・
{NASのIPアドレス:ポート},1 {ターゲット名n}

安易に見つかった全ターゲットにログインさせてみると・・・

# iscsiadm -m node --login

待ち時間も長いし失敗すると結果も怪しいので

使用するターゲットのみログインする

# iscsiadm --mode node --targetname {ターゲット名x} --portal {NASのIPアドレス:ポート} --login
Logging in to [iface: default, target: {ターゲット名x}, portal: {NASのIPアドレス:ポート}]
Login to [iface: default, target: {ターゲット名x}, portal: {NASのIPアドレス:ポート}] successful.
確認
# iscsiadm -m session -o show
tcp: [2] {NASのIPアドレス:ポート},1 {ターゲット名x} (non-flash)

# cat /proc/partitions
major minor  #blocks  name

   8        0  117220824 sda
   8        1     614400 sda1
   8        2    1048576 sda2
   8        3  115556352 sda3
 253        0   72294400 dm-0
 253        1    7958528 dm-1
 253        2   35299328 dm-2
   8       16  134217728 sdb
   8       17  134201344 sdb1

ログインしたターゲットにファイルシステムを作成する

# parted --script /dev/sdb "mklabel gpt"
# parted --script /dev/sdb "mkpart primary 0% 100%"
# mkfs.xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=8387584 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=33550336, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

マウントしてみる
# mkdir /mnt/kvm
# mount /dev/sdb1 /mnt/kvm

確認
# df -hT
Filesystem                           Type      Size  Used Avail Use% Mounted on
・・・
/dev/sdb1                            xfs       128G  3.1G  125G   3% /mnt/kvm ※iSCSIのサイズになってる
・・・

ファイルシステムのタイプは環境依存なので調べてみる ※上のdf -Tでも判る

# mount -l
・・・
/dev/sdb1 on /mnt/kvm type xfs (・・・)

自動ログインの設定をする

# iscsiadm -m node -T {ターゲット名} -o show | grep startup
node.startup = automatic
node.conn[0].startup = manual      {両方automaticでないとダメらしい}

起動時は手動になっているので自動に変更
# iscsiadm -m node -T {ターゲット名} -o update -n node.conn[0].startup -v automatic

確認
# iscsiadm -m node -T {ターゲット名} -o show | grep node.startup
node.startup = automatic
node.conn[0].startup = automatic

/etc/fstabにも起動時マウントの指定を追加する

#
# /etc/fstab
# Created by anaconda on Wed Mar 12 20:38:55 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/almalinux_*********-root /                       xfs     defaults        0 0
UUID=********-****-****-****-************ /boot              xfs     defaults        0 0
/dev/mapper/almalinux_*********-home /home                   xfs     defaults        0 0
/dev/mapper/almalinux_********-swap none                     swap    defaults        0 0
/dev/sdb1                            /mnt/kvm                xfs     _netdev         0 0

で、何に使うかと云えば

# rmdir /var/lib/libvirt/images           {imagesディレクトリィを削除し忘れると・・・・}
# ln -s /mnt/kvm /var/lib/libvirt/images  {imagesディレクトリィの下に kvm -> /mnt/kvm が出来てしまう}

本当はユーザ/パスワード指定してログインした方がいいし。CHAPも使った方がいい。

 vi /etc/iscsi/iscsid.conf
# CHAP有効化
node.session.auth.authmethod = CHAP
# iSCSI ターゲットで設定したユーザー名とパスワードを設定
node.session.auth.username = {ユーザ名}
node.session.auth.password = {パスワード}



top