過去記事 NIS/NFSv3 NIS/NFSv4

nfsサーバになってストレージ(/nfs/{home,apps})を他の(Linux)マシンと共有させるには下記のようにする

[root@nfs ~]# yum -y install nfs-utils
 
[root@nfs ~]# systemctl enable nfs && systemctl start nfs
[root@nfs ~]# firewall-cmd --add-service=nfs --add-service=rpc-bind --add-service=mountd --permanent
[root@nfs ~]# firewall-cmd --reload
 
[root@nfs ~]# df -h /nfs
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        32G  261M   32G   1% /nfs
 
[root@nfs ~]# mkdir /nfs/{home,apps}
[root@nfs ~]# vi /etc/exports
/nfs         192.168.0.0/255.255.255.0(rw,sync,fsid=0)
/nfs/home    192.168.0.0/255.255.255.0(rw,sync,nohide)
/nfs/apps    192.168.0.0/255.255.255.0(rw,sync,nohide)
 
[root@nfs ~]# exportfs -avr
 
(nfsノードにログインするなら)
[root@nfs ~]# mount --bind /nfs/home /home
[root@nfs ~]# mount --bind /nfs/apps /apps
[root@nfs ~]# echo "/nfs/home /home none bind 0 0" >> /etc/fstab
[root@nfs ~]# echo "/nfs/apps /apps none bind 0 0" >> /etc/fstab
 
[root@nfs ~]# semanage fcontext -a -t home_root_t /nfs/home
[root@nfs ~]# restorecon -R  /nfs/home

その後、共有化したストレージをマウントする. nfsクライアントにて下記のように実行

[root@client ~]# yum -y install nfs-utils
 
[root@client ~]# mount -t nfs nfs:/home /home
(autofsとかでmount)

以上が基本的なお話.

次に、1台のnfsサーバで運用してる...2台目のnfsサーバを追加したい.
でも/homeは同じでsmb共有も同じようにしたいなら

2021y06m05d_221958273.png

「/home」「/apps」がそれぞれ別のデバイスであった場合、bindで/nfs/{home,apps}に集める

[root@nfs ~]# df -h /dev/sdb1 /dev/sdc1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        32G  261M   32G   1% /home
/dev/sdc1       8.0G   90M  8.0G   2% /apps
[root@nfs ~]# mkdir /nfs/{home,apps}
[root@nfs ~]# mount --bind /home /nfs/home
[root@nfs ~]# mount --bind /apps /nfs/apps
(bindの恒久措置)
[root@nfs ~]# vi /etc/fstab
 :
/home /nfs/home none bind 0 0
/apps /nfs/apps none bind 0 0
[root@nfs ~]#

/homeの対処

単純に /home/userC, /home/userD をexportして login node の/home/userC, /home/userDにアサインする

[root@nfs-2nd ~]# cat /etc/exports
/home/userC 192.168.0.0/255.255.255.0(rw)
/home/userD 192.168.0.0/255.255.255.0(rw)
 
[root@nfs-2nd ~]#

login nodeではautofsでカバーするなら

[root@nfs ~]# cat /etc/auto.master
/-  /etc/auto.2nd-nfs  --timeout=60
 
[root@nfs ~]#
[root@nfs ~]# cat /etc/auto.2nd-nfs
/home/userC -rw  nfs-2nd:/home/userC
/home/userD -rw  nfs-2nd:/home/userD
 
[root@nfs ~]#

これでloginノードのlinux側面は対応OK

問題はsmb共有

smb共有

nfsで共有された場所をsmbで供出することは可能.
ただ場合によっては遅くなるとかの症状があるとのこと.

一応出来る. ただ問題が発生する可能性もあるよとのこと.

[root@nfs ~]# cat /etc/samba/smb.conf
[global]
        workgroup = SAMBA
        security = user
 
        passdb backend = tdbsam
 
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
 
[home]
        path = /home/
        browseable = yes
        read only = no
        inherit acls = Yes
 
[root@nfs ~]# systemctl enable smb && systemctl start smb
[root@nfs ~]# smbpasswd -a userA 
[root@nfs ~]# firewall-cmd --add-service=samba --permanent
[root@nfs ~]# firewall-cmd --reload
[root@nfs ~]# setsebool -P samba_enable_home_dirs 1
[root@nfs ~]# setsebool -P samba_share_nfs on

ファイルロックとか

問題点としてあるのがファイルロック機構がNFS由来とsmb由来が被ること.

片方を使うようにできれば大変宜しいみたい.
nfsで統一なら、windows10にはnfsクライアント機能があるようでこれを活用する. macOSはそもそも持っているから大丈夫
ただuid/gidのマッピングが面倒でしょうか

smbで統一なら、計算ノードのmountをcifs mountにすれば解決可能みたい.
https://wiki.centos.org/TipsAndTricks/WindowsShares

nfsで染める

windowsクライアントマシンが nfs プロトコルを喋ればいい. そうしてsmb/cifsを排除できる.
昔HummingbirdからNFS Maestroとかでwindows向けNFSクライアントアプリが有償販売されていたが、OS側でもnfs機能を提供されているみたい.
[コントロール パネル]->[すべてのコントロール パネル項目]->[プログラムと機能]を開き、nfsパッケージをインストールします
2021y06m07d_140017720.png

これで「mount」「rpcinfo」コマンドが使えます
使い方は同じで「コマンドプロンプト」を立ち上げて下記のように実行します.

mount nfs:/home S:
(管理者権限は不要. 一般ユーザで実行可能)

マウントポイント先がドライブ名になることに留意.
*nfsサーバにおける/etc/exportsフォーマットは従来型なら大丈夫. 疑似ファイルシステムはどうもダメみたい.
一応これでnfs mountは出来ましたが、大事なのはユーザマッピング. windowsアカウントの userX は unixアカウントの誰に符合するのか. その定義が大事.

windows側のアカウントとnfs側のアカウントが下記のような関係だった場合

windowsposixAccount(/etc/passwd)
ユーザ名グループ名UIDGID
AdministratorBUILTIN\Administrators00
illyaUsers10001000
saberUsers10011000

ならwindows10の「%SystemRoot%\system32\drivers\etc\group」に下記を作ります

BUILTIN\Administrators:x:0:root
Users:x:1000:illya,saber

そして「%SystemRoot%\system32\drivers\etc\passwd」も作成します

Administrator:x:0:0:root:/root:/bin/bash
illya:x:1000:1001:illya:/home/illya:/bin/bash
saber:x:1001:1001:saber:/home/saber:/bin/bash

「メモ帳」アプリを「管理者として実行」にて起動させ、該当の場所に保存すればいいみたい.
作成後一旦再起動して、面倒だが再度mount操作を行えばアクセスOK

groupとpasswdファイルをwindows側に用意できれば便利かもしれないが、エクスプローラーのアドレスで「\\nfs\home」と入力すれば即座に使えるのに比べるとやや面倒かな.

あとmacOSにはこのようなマッピング機能がない模様. なのでヘテロ環境ではこの方法は難しいかも.

smb/cifsで染める

windwos/macOSクライアントに手を加えず、smb/cifsプロトコルで全てをカバーするなら計算ノードとかのmountにsmb/cifsを宛がう必要がある.

最新の60件
2023-09-20 2023-09-19 2023-09-18 2023-09-17 2023-09-16 2023-09-14 2023-09-12 2023-09-11 2023-09-08 2023-09-05 2023-09-02 2023-08-30 2023-08-29 2023-08-28 2023-08-27 2023-08-22 2023-08-20 2023-08-18 2023-08-17 2023-08-14 2023-08-12 2023-08-09 2023-08-07 2023-08-06 2023-08-03 2023-07-31 2023-07-29 2023-07-27 2023-07-25 2023-07-24 2023-07-22 2023-07-17 2023-07-16 2023-07-09 2023-07-08

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-01-05 (木) 02:51:36