GEOM MULTIPATH は,ストレージ IO を複数のインターフェイスで冗長させることができるものです.
iSCSI 環境を用いて,GEOM MULTIPATH によるマルチパスアクセスを構成してみます.
長くなるので,今回は iSCSI ターゲット / イニシエーター のマルチパスに向けた設定を解説し,GEOM MULTIPATH については次回に纏めます.
- GEOM に関するお話
- FreeBSD GEOM 再々学習
- GEOM CONCAT (ディスクの連結) を使ってみる
- GEOM STRIPE (ストライプ/RAID0) を使ってみる
- GEOM MIRROR (ミラーリング/RAID1) を使ってみる (1)
- GEOM MIRROR (ミラーリング/RAID1) を使ってみる (2)
- GEOM STRIPE + MIRROR で RAID10 を構成してみる
- GEOM RAID3を使ってみる
- GEOM CACHE を使ってみる
- GEOM GVIRSTORを使ってみる
- GEOM GATE を使ってみる
- GEOM LABEL で名前による管理を行う
- GEOM PART でディスクパーティションの管理を行う
- GEOM MULTIPATH でマルチパスを構成する (1)
- GEOM MULTIPATH でマルチパスを構成する (2)
 
FreeBSD で Multipath なターゲットを設定する
先日の iSCSI ターゲット/イニシエーターは iSCSI 用ネットワークが一つでしたが,二つの iSCSI ネットワークの構成にアップグレードしていきます.
イメージとしてはこのようになります.

まずは,ターゲット (サーバー) 側でマルチパスに向けた設定に修正していきます.
修正と言ってもそんなに多くありません.やったこととしては,172.16.255.0/24 が元々あったネットワークです.これに 172.17.255.0/24 のネットワークを足した形となります.
各 auth-group および portal-group に 172.17.255.x を足しました.
ctl.conf の詳細については「FreeBSD で iSCSI を利用する (サーバー/ターゲット編)」を参照ください.
# cat /etc/ctl.conf
auth-group ag0 {
  chap-mutual "iscsi-user1" "Password-user1" "mutual-user" "Password-mutual"
  initiator-portal 172.16.255.0/24
  initiator-portal 172.17.255.0/24
}
auth-group ag1 {
  chap "iscsi-user2" "Password-user2"
  initiator-portal 172.16.255.1/24
  initiator-portal 172.17.255.1/24
}
auth-group ag2 {
  auth-type none
  initiator-portal 172.16.255.1/24
  initiator-portal 172.17.255.1/24
}
portal-group pg0 {
  discovery-auth-group no-authentication
  listen 172.16.255.254:3260
  listen 172.17.255.254:3260
}
target iqn.2023-12.iscsi.org.seichan:target0 {
  alias "target0"
  auth-group ag0
  portal-group pg0
  lun 0 {
    path /dev/da1
    option vendor "FreeBSD"
  }
  lun 1 {
    path /mnt/lun1.img
    option vendor "FreeBSD"
    blocksize 4096
    size 10G
  }
}
target iqn.2023-12.iscsi.org.seichan:target1 {
  alias "target1"
  auth-group ag1
  portal-group pg0
  lun 2 {
    path /mnt/lun2.img
    option vendor "FreeBSD"
    blocksize 4096
    size 10G
  }
}
target iqn.2023-12.iscsi.org.seichan:target2 {
  alias "target2"
  auth-group ag2
  portal-group pg0
  lun 3 {
    path /mnt/lun3.img
    option vendor "FreeBSD"
    blocksize 4096
    size 10G
  }
}
設定の再読み込み
次のコマンドでサービスに新しい設定を通知します.
# /etc/rc.d/ctld reload
以上でターゲット側は完了です.続いてイニシエーター側になります.
FreeBSD で Multipath なイニシエーターを設定する
イニシエーター側のマルチパスに向けた準備も大きな変更はありません.
以下が元々の設定ファイルになります.これを修正していきます.
設定ファイルの詳細については「FreeBSD で iSCSI を利用する (クライアント/イニシエーター編)」を参照してください.
# cat /etc/iscsi.conf
iscsi_target0 {
  targetaddress = 172.16.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target0;
  authmethod = chap;
  chapiname = "iscsi-user1";
  chapsecret = "Password-user1";
  tgtchapname = "mutual-user";
  tgtchapsecret = "Password-mutual";
}
iscsi_target1 {
  targetaddress = 172.16.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target1;
  authmethod = chap;
  chapiname = "iscsi-user2";
  chapsecret = "Password-user2";
}
iscsi_target2 {
  targetaddress = 172.16.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target2;
  authmethod = none;
}
どういう名前付けが良いのか悩みましたが,これが一番分かりやすそうだったのでこうしました.
各設定を 172.16.255 と 172.17.255 分増やした形となります.iscsi_target0_0 と iscsi_target_0_1 の違いはこのニックネームの部分と targetaddress のみとなります.
これをマルチパスを構成するデバイス分増やしていった形となります.
# cat /etc/iscsi.conf
iscsi_target0_0 {
  targetaddress = 172.16.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target0;
  authmethod = chap;
  chapiname = "iscsi-user1";
  chapsecret = "Password-user1";
  tgtchapname = "mutual-user";
  tgtchapsecret = "Password-mutual";
}
iscsi_target0_1 {
  targetaddress = 172.17.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target0;
  authmethod = chap;
  chapiname = "iscsi-user1";
  chapsecret = "Password-user1";
  tgtchapname = "mutual-user";
  tgtchapsecret = "Password-mutual";
}
iscsi_target1_0 {
  targetaddress = 172.16.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target1;
  authmethod = chap;
  chapiname = "iscsi-user2";
  chapsecret = "Password-user2";
}
iscsi_target1_1 {
  targetaddress = 172.17.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target1;
  authmethod = chap;
  chapiname = "iscsi-user2";
  chapsecret = "Password-user2";
}
iscsi_target2_0 {
  targetaddress = 172.16.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target2;
  authmethod = none;
}
iscsi_target2_1 {
  targetaddress = 172.17.255.254;
  targetname = iqn.2023-12.iscsi.org.seichan:target2;
  authmethod = none;
}
設定ファイルの修正が終わったら iscsictl を再起動します.本来は手動で追加するか,再起動を入れたほうがいいかもしれません.
サービスの再起動時,デバイスをマウントしていない事を確認してください.
# /etc/rc.d/iscsictl restart iscsictl not running? Starting iscsictl. iscsictl: ISCSISADD: Device busy iscsictl: ISCSISADD: Device busy iscsictl: ISCSISADD: Device busy /etc/rc.d/iscsictl: WARNING: failed to start iscsictl # iscsictl -L Target name Target portal State iqn.2023-12.iscsi.org.seichan:target0 172.16.255.254 Connected: da4 da5 iqn.2023-12.iscsi.org.seichan:target1 172.16.255.254 Connected: da3 iqn.2023-12.iscsi.org.seichan:target2 172.16.255.254 Connected: da2 iqn.2023-12.iscsi.org.seichan:target0 172.17.255.254 Connected: da7 da9 iqn.2023-12.iscsi.org.seichan:target1 172.17.255.254 Connected: da8 iqn.2023-12.iscsi.org.seichan:target2 172.17.255.254 Connected: da6
エラーが出ちゃってますが,iscsictl -L で見ると二つのネットワークから接続できている事が確認できました.
これで GEOM MULTIPATH で束ねる準備ができました.
 
  
  
  
  
コメント