2022年 09月 10日
簡単! Linux で iSCSI で NAS を使う openSUSE Leap 15.4

・仮想環境でも容易に外部ストレージの増設・仮想環境でライブマイグレーションできる・距離に関係なくストレージが使えるので地球の裏側でも ip で繋がれば遠隔地のバックアップ手段になる (物理的距離無関係)・外部ストレージとしては FC-SAN より遥かに安価・ソフトウェア接続なので、ハードウェアを遮断しなくても取り外せる・IP 接続なので、比較的容易に安価に設計できる。・経路がメタルでも光ファイバでもそんなの関係ない。・最近の NAS ではほとんど標準装備されている。・必要なサイズを必要なだけ好きなサイズで作成できる。また・10Gbit Ethernet を使えばほぼ SAS なみの速度が出る・と言うより将来ネットワークインフラ自体が高速化されたら SAS 以上に速度が出る・基本的に IP のオーバーヘッドがあるので FC-SAN よりは遅いが、 CIFS よりは早い。
・ IP オーバーヘッドがあるので FC-SAN より遅い、というか途中経路の速度次第・DAS よりやっぱり遅い(でもストレージ性能を使い切っているのかな)・基本的に通信速度はベストエフォート・なぜか iSCSI - SAS のメディアコンバータがない(あれば LTO でリモートバックアップできるのに)
実際、SAS-Raid HDD ならそれなりに早いし、SATA-RAID なら安価で大容量のストレージを作る事ができるわけです。たぶん SSD ストレージなら帯域使い果たすでしょう。特に実用的なのは、低速でも構わない SATA のバックアップストレージや仮想環境のリモートマイグレーションと言ったところでしょうか。本社のサーバールームにあるストレージを、データセンタにバックアップするなどという事もできるわけです。
SUSE Linux (openSISE/SLE) で ISCSI ターゲットへの接続は YaST GUI によって実に簡単に設定できます。特に何かの設定ファイルを書いたりする必要はありません。特に長たらしい iqn Target Name を設定ファイルに記述したり、ディスクのフォーマット、マウント操作を全て GUI でできるのは心強いでしょう。これに慣れたら他のディストリビューションでは、とても iSCSI を設定する気にはなりません。
iSCSI Target には、QBAP の TS-110 を使いました。QNAP の極初期モデル 10 年選手でまだ頑張っている NAS です。正直言って古くて遅いし、ファンが調子悪いのですが、使えているので検証目的なので頑張ってもらいます。
ISCSI ターゲットには誤接続を避けるため、パスワードを設定しておくと良いでしょう。

SUSE Linux (openSUSE Leao 15.4) 側に iSCSI イニシエータをインストールします。
# yast2 &
YaST から iSCSI-Initiator を起動しますが、通常 openSUSE Leap 15 ではこの機能、アイコンはインストールされていません。
YaST2 > Software Manegement より "yast2-iscsi-client" を Search して、チェック、インストールします。インストールできたら、一旦、YaST を終了させて、YaST を再起動させます。

次に YaST > Network Services > iSCSI-Initiator を開くと、iSCSI を利用するためのパッケージがウィザード形式で自動的にインストールされます。
YaST から iSCSI Initistor のメインメニューの Discovery Targets タブを開き、"Discovery" します。

ISCSI ターゲットの IP アドレスを設定し、もしターゲットに Chap 認証を付けてある場合、ユーザ名とパスワードをセットします。誤接続を避けるためにも、それぞれのターゲット毎に、異なるパウワードをつけるべきでしょう。次へ

接続できたら、Connected > True 状態になります。

Connected Target タブを開いて、Startup が Manual になっています。起動時に自動的にマウントさせるために、Edit ボタンからStartup の種類を Automatic (自動) か On Bootに変更します。

認証が必要な iSCSI ターゲットの場合、"Not Login Authentication" のチェックを外し、ユーザ名とパスワードを設定します。

通常の Startup の設定は Automatic で構いませんが、起動時に自動マウント去せる場合は On Boot に設定します。マニュアルに次の記述があります。
14 IPネットワークの大容量記憶域 - iSCSI
"起動の切り替えをクリックして設定を変更します。自動: このオプションは、iSCSIサービス自体の起動時に接続するiSCSIターゲットに使用されます。これが通常の設定です。Onboot(起動時): このオプションは、起動時、つまりルート(/)がiSCSI上にある場合に接続するiSCSIターゲットに使用します。したがって、iSCSIターゲットデバイスはサーバの起動時にinitrdによって評価されます。このオプションはIBM Zなど、iSCSIからブートできないプラットフォームでは無視されます。したがって、これらのプラットフォームでは使用しないでください。代わりに自動を使用してください。"

Service タブを開いて、iSCSI サービス自体の起動設定を Start on boot に設定し、システムブート時に systemd から起動させます。

iSCSI デバイスをマウントするために YaST > Systen > Partitioner を開きます。Hard Disks デバイスの中に、イニシエータ、ターゲット共に問題なければ、SCSI デバイス(sdx)が新しく追加されています。

YaST Partitiner で見つかった SCSI デバイスを Edit ボタンから、デバイスのマウントとフォーマットを設定します。

マウント設定画面で fstab オプション > Arvitiary Optin に ”_netdev” オプションを設定しておくことをお勧めします。この設定を忘れると、ブート時に fstab で指定されたマウントポイントが正しくマウントされず、レスキューモードで起動してしまう場合があります。
SUSE Linux Enterprise Server 15 SP3 ストレージ管理ガイド
"1. ネットワークストレージの接続に失敗した場合にシステムが緊急モードでブートしないようにするため、/etc/fstabの各エントリにマウントオプション_netdevを追加することをお勧めします。"

この fstab オプションを指定しておくと、/etc/fstab は次のように _netdev オプションが追加されます。
UUID=8a6f3ed3-be72-46ef-aa46-41e62d7c9030 /home xfs _netdev 0 0
ちなみに、iSCSI Target の設定は /etc/iscsid.conf に設定されます。
接続認証は Chap です。誤接続を防ぐために、最低限のパスワードを設定しておくといいでしょう。
基本的には iSCSI デバイスはパスワードを付けなくても接続できて(Windows には Initiator が標準です)しまいます。誤接続を防止するため iSCSI ストレージデバイスは専用のストレージネットワークに置くべきです。もし共有LANにある NAS の機能で iSCSI を利用する場合はパスワードを付けておくべきでしょう。
接続セッションでは Chap 認証が使えますが、通信そのものは暗号化されないので、その点も注意しておくことです。
Linux ソフトウェア Raid 作成 openSUSE 15.4 YaST GUI
iSCSI で遠隔地にRaid ミラーを作る方法Linux で iSCSI ストレージサーバを作る