iSCSIとNFS

FreeBSD

自分使いの数台のPCからアクセスできるようにディスクを用意したメモ。
SAMBAを入れる前にiSCSIとNFSの使い勝手を確認してみた。

iSCSIは、Windows10ではサービスから開始すれば直ぐに利用できて便利。
ただ、iSCSIを使うとマウント情報のゴミが残って NFSを使うときに焦る。

iSCSIでディスクをマウントする場合は、iSCSIイニシエータから、targetを探索して
接続を行う。□この接続をお気に入りの一覧に追加するにチェック入れてから、接続をクリックする。認証なしの場合はそのまま接続完了となる。

CHAPによる簡単認証の場合は、詳細設定→□CHAP ログオンを有効にするにチェックを入れターゲットシークレットにパスワードを入れる。ここに書かれている名前を
target側の ctl.conf の auth-group に、 chap 名前 パスワードを書いて再起動しておく。 再起動終わったら、接続してみる。名前とパスワードをctl.confに書くだけ。

接続完了したら、ディスクの管理からNTFS等でフォーマットしてドライブに割り当てる。お気に入りに追加されれれば、リブートしても永続的に使える。

ただし使いたいときだけマウントする場合は、少し面倒。
実行には管理者権限が必要。マウントポイントを確認しておく。

リストの取得
> mountvol /L
 \\?\Volume{U--U--I--D}\
 Z:\

手動マウントには、このマウントポイントが必要になる。

Zにマウントしてみる。
mountvol Z:\ \\?\Volume{U--U--I--D}\ 

“`
マウントされる。これをBATファイルに書き出す。
何処かののサイトにで覚えたCOPYを使ってBATを作成してみる。覚えておいた方が得。
因みに FreeBSD(Unix) では、 

cat <<EOT>/filename
 ~~~~ 

EOT

みたいに普段から使ってたりします。これは、シェルの中に書いて、ファイルを生成したあと
chroot して、生成したファイルを実行したりとかも良く使います。

> COPY CON mount.bat
mountvol Z:\ \\?\Volume{U--U--I--D}\ 
^Z

Ctrl-Zで書きだされる。管理者として実行すればマウントされる。
外す場合は、

mountvol Z:\ /P

その他 /N /E /D /R と色々ある。

Target側はあちこちに書かれているので、割愛。
iSCSIはもちろん NanoBSDでも動く。 FreeNASでも動くから当然なんだけど、
ctl.ko、cfiscsi.ko、iscsi.ko がロードされれば問題ない。
あとは、ZFSから

zfs create -V 100g zroot/iSCSI/target0-0

と切り出せば /dev/zvol/zroot/iSCSI/target0-0 としてデバイスが生える。
使った感想は思ってたより高速で良かった。
続いて Windowsから NFSをマウントしてみた。

zroot/system/home on /home (zfs, NFS exported, local, noatime, nfsv4acls)

へマウントしてみる。 exportsは、

/home/User -network 192.168.3.0/24 

とだけ書いている。マッピングは、C:\Windows\System32\Drivers\etc に、
passwd と groupを置いた。FreeBSD側のユーザが taro(id:2000)(gid:1600) だとすると

passwdの中身
taro:x:2000:1600:user name taro::

groupの中身
BUILTIN\Administrators:x:1600

これでマウントすれば、自分のIDでマップしてマウントできる。

C:\Windows\System32>mount

Local    Remote                                 Properties
-------------------------------------------------------------------------------
Z:       \\192.168.3.200\home\User              UID=2000, GID=1600
                                                rsize=131072, wsize=131072
                                                mount=soft, timeout=10.0
                                                retry=1, locking=no
                                                fileaccess=755, lang=SHIFT-JIS
                                                casesensitive=no
                                                sec=sys

注意が必要なのは、管理者権限でマウントすると自分には見えなくなってしまう。
だから自分のコマンドプロンプトからマウントする。
/home/User配下はUnix側のユーザーが適切にあれば良い。

C:\Windows\System32>mount 192.168.3.200:/home/User Z:\

iSCSIを使ってなければ、System32以外にいてもマウントできるかもしれない。
わたしの場合は、System32でmountする必要があった。mount は最終的に mountvolを呼んでいるようで、iSCSIを使っているとマウントポイントを実行して拒否されて終わるか別のエラーを吐くようだ。umountしてあってもmountと打てばマウントされるし、mountvolも実行される。
NFSは永続的に自動マウントはできないようだから、 System32にcdしてかマウントするようにBATを書けば問題なくマウントされる。
ユーザーがマウントした場合は管理者のコマンドプロンプトでmountを実行しても
マウント状態は見えない。

まあ、それなりに快適に使える。

コメント

タイトルとURLをコピーしました