2019年 06月 23日
openSUSE Leap 15.1 で iSCSI NASがマウントできない?
私が使っているNAS は qnapの TS-110。QNAP 製で初期のかなり古い、いつ「燃えないゴミ」に格下げされるか分からない遅くて古い10年前の製品です。一応 Gbit Ethernet のポートが付いていますが、それほどの性能が使いきれない、当時では珍しかった手ごろで手軽に iSCSI 機能が使えた NAS 製品です。
価格:238,305円(2019/7/27 14:31時点)感想(1件)
QNAP TS-431P2 HDD-LESS 4ベイ メモリ4GB 2年保証 NAS
価格:53,578円
(2019/7/27 14:32時点)
感想(0件)このシリーズの中々侮れないのは、未だファームウェアが更新されていることです。
仮想化時代の NAS 選び - やっぱり iSCSI は早い。
PR --qnap では、ストレージマネージャから iSCSI ターゲットを作成します。全てウィザード形式なので、特に問題になることはないでしょう。既におそらくはもう使っていないだろう、ターゲットがあったのでこれを使ってみましょう。iSCSI ターゲットをマウントする側は openSUSE Leap 15.1 です。大抵は YaST のメニューに iSCSI Initiator のアイコンがあるはずです。もしない場合は YaST > Software Management から "iSCSI" などのキーワードで検索すると、 "yast2-iscsi-client" という項目がでてくるのでこれをクリックしてインストールします。インストールしたら、一旦 YaST を終了して、YaST を再起動すると iSCSI Initiator のアイコンが出てくるので、このアイコンを open します。ウィザード形式でインストールとセットアップが始まります。Discovered Target を開くと、おそら始めは何もリストに出てこないはずです。Discovery Target > "Discovery" ボタン > で iSCSI Target の IP をセットすると、下の様に、件の NAS で定義されている、複数の iSCSI ターゲットのリストが出てくるので、目的の iSCSI Target を選んで ”Connect” ボタンを押すと、"Connect" 状態が "True" になりました。 "Connected Target" を開くと、利用可能なISCSI ターゲットのリストではなく、実際に接続されたターゲットがリストされます。"Startup" のカラムは ”Edit” ボタンで”Automatic” にしておくと良いでしょうか。 YaST の Partitioner から見ると、どうも、この Target の残骸は、以前 Windows で使ったものの残骸で NTFS でした。デバイス名が "sda" となっている通り、iSCSI デバイスが 物理的なSCSI か SAS あるいは SATA ドライブに 見えている事が分ります。NTFSなので、マウントできるかどうか試してみました。マウント出来てしまった様です。openSUSE はデフォルトで ntfs-3g パッケージが入っています。それはそれで便利なのですが....Windows 10/Windows 2016 Server などでフォーマットした、NTFS のターゲットイメージは、必ずアンマウントするか、iSCSI マウントしたホストを確実にスリープではなくシャットダウン(高速起動モードは必ずオフ)にするなりしないと、別なホストではマウント出来ないようです。恐らくデュアルブートするような場合でも、Windows パーティションでは同じ問題が出そうです。なお、よほど安定した環境であれば、 Partitioner で XFS などでフォーマットしたものをマウントし、 fstab を書き換えてもいいのですが、今回のケースの場合、NTFSのディスクエラーがでて、エマージェンシーモードに入り、再起動に失敗しました。 /etc/fstab に追加された /dev/sda1 のマウント行を削除したら起動できました。手動でマウントしても NTFSのエラーがでてマウントできない事が多いので、Linux では NTFS と iSCSI は相性が悪い様です。というより、マウントしたら常に無駄にこそこそディスクアクセスを行う「Windows の仕様」なので仕方がないのでしょう。しかし XFS フォーマットされた、iSCSI ターゲットでも、ブート時に iSCSI イニシエーターがターゲットを掴まず、fstab に書き込まれた仮想イメージのマウントができなかったので、おそらく openSUSE Leap 15.1 の iSCSI イニシエーターの不具合の様です。情報がありませんでした。
また、iSCSI イニシエーターをオンにした後、正常にシャットダウンできない現象が出ました。Is this BUG on openSUSE Leap 15.1 ? iSCSI initiator never come up when on host boot. Also iSCSI initiator enabled, openSUSE Leap 15.1 shutdown failed. iSCSI virtual image could not be mounted on boot, it's fail to mount by /etc/fstab description. After boot, iSCSI Initiator connect to target from YaST, and mount iSCSI target volume by 'mount' command by manually, it's work.Does anyone have Idea ?...... on comment.という事で
- iSCSI のアクティブ化に問題があり、完全起動してから、手動でアクティブにする必要がある。- iSCSI ボリュームは起動後、iSCSI Initiator がターゲットを掴んでから手動でマウントする。
という点が今時点の対策です。
SUSE Linux Enterprise Server 15 (SLES15) でも同じ現象がでたらちょっと怖いです。という事で対策見つかりました。
マニュアルによるとConfiguring iSCSI InitiatorClick Toggle Start-Up to modify the setting:Automatic: This option is used for iSCSI targets that are to be connected when the iSCSI service itself starts up. This is the typical configuration.Onboot: This option is used for iSCSI targets that are to be connected during boot; that is, when root (/) is on iSCSI. As such, the iSCSI target device will be evaluated from the initrd on server boots. This option is ignored on platforms that cannot boot from iSCSI, such as IBM Z. Therefore it should not be used on these platforms; use Automaticinstead.
”Connected Target” の項目を、”Automatic”。これで、起動時に iSCSI ターゲットを認識する様になりました。
- fstab の iscsi マウントオプションには "_netdev" を -
ストレージ管理ガイド SUSE Linux Enterprise Server 15"17.15.2 マルチパスが有効な場合、ブート時にシステムが終了して緊急シェル(※ Emergency Shell )が起動する3. ネットワークストレージの接続に失敗した場合にシステムが緊急モードでブートしないようにする ため、 /etc/fstab の各エントリにマウントオプション _netdev を追加することをお勧めします。"--という事で /etc/fstab で iscsi ボリュームをマウントする行を dafaults > _netdev に書き換えます。opensuse151:~ # cat /etc/fstab |grep xfsUUID=9edcdd14-5c39-47e2-b080-6764582cc9c8 /var xfs defaults 0 0UUID=fc3aa41a-7675-461b-b610-58684901fe94 /mnt/iscsi xfs _netdev 0 0opensuse151:~ #YaSTでは System > Partitioner > "/dev/sdx" > edit > Fstab Options > Arbitrary Option Value > set "_netdev".