というわけで,どうしてもVPNでつながらないので最初からやり直しでwebGUIで設定します。ファームウェアは以前から更新されていないので,アップデートは不要ですからいきなり設定からはじめます。
1. 初期化
webGUIで「管理」>「保守」>「再起動と初期化」>「初期化」とたどって管理用パスワードを入力して「実行」をクリックすると工場出荷状態に戻ります。
2. ログイン
ルーターのLAN1が192.168.100.1に設定されていて,DHCPでIPをばら撒いているので適当なPCをLAN1に接続してwebブラウザで192.168.100.1に接続します。ユーザーもパスワードも設定されていませんが,appleのsafariは余計なお節介をしてパスワードを勝手に入れたりするので,ユーザーにanonymousを入れて,パスワードは空欄のままログインします。
3. ユーザーとパスワードの設定
ログインすると管理ユーザーのパスワードが設定されていない,ユーザーが設定されていない,とダッシュボードに表示されます。まずユーザーを設定します。名無しのユーザーが最初から設定されていますが,新規をクリックして適当なユーザー名で新しいユーザーを設定します。管理ユーザーになれるようにして,ログアウトまでの時間を少し長めに設定します。名無しのユーザーにもパスワードを設定しておき,かつ,管理ユーザーにはなれないようにしておくほうが安全だと思われます。
ユーザーの設定ができたら管理ユーザーのパスワードを設定します。このパスワードはユーザーのパスワードと異なるパスワードにしておくのが無難です。設定するとユーザーとパスワードを聞かれるので新たに設定したユーザー名と管理ユーザーのパスワードを入力します。これで管理者権限でログインしなおすことができます。なぜか,何回やってもエラーになって挙句の果てに何回も間違ったからしばらく待て,などと言われます。コンソールからtelnetでユーザー名とユーザー用のパスワードでログインしたのちに,administratorと叩いて管理ユーザーのパスワードを入力するとちゃんと管理者になれるのでwebGUIのほうに設定が反映されるまでに時間がかかるのかもしれません。
しばらくまってやり直すとwebGUIにもログインできるようになります。
4. 基本設定
上部のメニューから「かんたん設定」>「基本設定」と進んで,日付と時間の設定をします。
「基本設定」にはLANの設定というのがありますが,この設定は有無を言わせずLAN1をローカルのLANとして設定をするようになっています。とりあえず,LAN側のIPを設定しておきます。
5. LAN2, LAN3の設定
LAN2を外向け(WAN)に,LAN3をDMZに設定します。
「かんたん設定」>「プロバイダー接続」とたどって新規ボタンを押してLAN2のIP (またはPPPoE)を設定します。
LAN3にDMZを設定するためにはwebGUIではうまくいかないのでYamahaの設定例をみながらコンソールで設定します。ip lan3というところを真似します。ただフィルタの設定は,lan2用に既に設定されているものと重複するので,
ip lan3 secure filter out 3000 dynamic 100 101 200
となっているところの100, 101はip lan2 secure filter ***に設定されているwwwとsmtpのdynamic filterの番号を確認してその番号にしておきます。
また,natの設定はIPSecの設定をしてからやります。
6. 接続の確認
この状態で2つのルーターのLAN2をそれぞれネットワーク(WAN)に接続し,pingが通るかどうか確認します。LAN1につないだPCから対向側のルーターのWAN側のインターフェースにpingが通らなかったらVPNどころではないのでこの段階で確認をしておきます。
7. LANの入れ替えの確認
この状態で設定ファイルをダウンロードして(config0.txt),このファイルに書かれているlan1をlan3に書き換えてconfig1.txtとして保存し,ルーターに不揮発メモリのconfig1としてインポートし,config1で起動するように再起動するとLAN3が正しくローカル側のLANとして機能するので,最後まで設定してからlan1とlan3を入れ替えればなんとかなりそうです。
9. IPSecの設定
LANの入れ替えができることがわかったのでもとに戻して(LAN1をローカル,LAN3をDMZになるように不揮発メモリのconfig0を使って再起動させます),IPSecの設定に進みます。
「かんたん設定」>「VPN」とたどって新規をおしてIPSecによるVPN接続を設定します。この設定は以前にやった設定と同じです。暗号アルゴリズムはAES256-CBCを使うことにします。IPSecの考え方がわかっていればそれほど悩みません。IPSecによるVPN接続についての簡単な解説がマイナビのTech+に出ているので参考になります。
10. IPマスカレードの設定
DMZにおいたメールサーバーとwebサーバーに外部からのアクセスを振り向ける設定をします。IPSecの設定をすると
nat descriptor type 200 masquerade
という設定がされているので,200番のマスカレードに設定を追加します。DMZではありませんが,ipマスカレードの設定方法がこちらに書かれているのでそれを参考にします。webGUIから設定するには,「詳細設定」>「NAT」>「NATディスクリプター番号の一覧」>「設定」と進めます。「NATディスクリプター番号の一覧」には先にIPSecで設定された200番が表示されています。「静的IPマスカレードの設定」という文字の左の三角をクリックしてリストを表示するとIPSecに関する設定があります。+をクリックして設定するための行を増やし,適当な番号でssh,www, smtpの設定を追加します。
さらに,「詳細設定」>「セキュリティ」>「IPフィルター」>「LAN2 設定」とたどってIPフィルタを設定します。コマンドでは
ip filter XXXX pass * 192.168.YYY.ZZZ tcp * 22
ip lan2 secure filter in ... XXXX
とするとsshが通るはずです。XXXXはフィルタの番号,最初の*は任意のipからの接続を許す,という意味です。2行目の...は他のフィルタの番号の羅列です。
DMZへのアクセスはまだテストしていないのでまた後日確認してから追記します。
YAMAHA RTX 1210に乗り換え (7) やり直し(能書き)編
ヤマハのルーターRTX1210に乗り換えるぞ,と言って設定をコツコツやっていましたが,DHCPの設定をしたところで中断して放置していたら,気が付いたらもう1年半も経過していました。途中で放置してしまうというのはよくある話ですが,FutureNet XR-730/Cのファンが異音を発し始めていよいよ末期的症状がでてきて放置してられなくなってきました。
というわけで職場のサーバーの入れ替えとあわせてルーターの入れ替えも進めざるをえなくなりました。
どうせ入れ替えるなら,ということで職場のLANを10Gbpsと2.5Gbps化しよう,と企んだわけですが,サーバーに突っ込む10GbpsのNICで苦戦し,さらにバッファローの2.5GBase-T x 16ポート+ 10GBase-T とSFP+のコンボポートx2 + 10Gbps SFP+ x 2というスイッチングハブのSFP+の相性でさらにハマりまくるという状況に陥りました。さらに,職場のバックボーンのネットワークが更新されて実はマルチギガビット (10Gbps, 5Gbps, 2.5Gbps, 1Gbps)に対応しているということにフと気が付いてしまいました。建物内の配線が必ずしもCat6Aではないので,手元まできたときは1Gbpsでしかつながらない,ということにもなりかねませんが,せっかくなので職場のルーターも10Gbps対応にしたくなってしまいます。そうすると小規模組織で使えるVPNで10Gbpsのバックボーンに繋がるのはYamaha RTX1300一択です。
何が言いたかったかというと,RTX1210を放置している間にRTX1300を導入すべきタイミングになっていた,ということです。しかもRTX1300は多少なりとも最近は安くなってきて12万円くらいになってますので買えない値段ではなくなっています。設定ファイルはRTX1210でもRTX1300でも共通で使えるのでRTX1210で設定ができればRTX1300に入れ替えるのは簡単です。
ただ,RTX1300で10Gbpsに対応しているのは,LAN2とLAN3だけで,LAN1をローカルのLANに割り当てるのは職場での使い方では筋が悪い,ということに気がつきました。RTX1210のwebGUIで簡単設定をすると,有無を言わせずLAN1をローカルのLANに割り当ててしまいます。しかも,VPNをwebGUIで設定するとLAN1がローカルである,という暗黙の前提でパラメータが設定されてしまいます。
10Gbpsを職場で有効に使うためには,LAN2をWANに,LAN3をローカルのLANにしてLAN1をDMZにしたいのです。
というわけで,設定をやり直すことにしました。
コンソールからログインして設定のパラメータを入れ替えると,あっという間に接続できなくなりました。恐ろしい。何が悪いのかわからず,どんどんツボにハマっていきます。
もう諦めて最初から設定することにしました(涙)。
というわけで職場のサーバーの入れ替えとあわせてルーターの入れ替えも進めざるをえなくなりました。
どうせ入れ替えるなら,ということで職場のLANを10Gbpsと2.5Gbps化しよう,と企んだわけですが,サーバーに突っ込む10GbpsのNICで苦戦し,さらにバッファローの2.5GBase-T x 16ポート+ 10GBase-T とSFP+のコンボポートx2 + 10Gbps SFP+ x 2というスイッチングハブのSFP+の相性でさらにハマりまくるという状況に陥りました。さらに,職場のバックボーンのネットワークが更新されて実はマルチギガビット (10Gbps, 5Gbps, 2.5Gbps, 1Gbps)に対応しているということにフと気が付いてしまいました。建物内の配線が必ずしもCat6Aではないので,手元まできたときは1Gbpsでしかつながらない,ということにもなりかねませんが,せっかくなので職場のルーターも10Gbps対応にしたくなってしまいます。そうすると小規模組織で使えるVPNで10Gbpsのバックボーンに繋がるのはYamaha RTX1300一択です。
何が言いたかったかというと,RTX1210を放置している間にRTX1300を導入すべきタイミングになっていた,ということです。しかもRTX1300は多少なりとも最近は安くなってきて12万円くらいになってますので買えない値段ではなくなっています。設定ファイルはRTX1210でもRTX1300でも共通で使えるのでRTX1210で設定ができればRTX1300に入れ替えるのは簡単です。
ただ,RTX1300で10Gbpsに対応しているのは,LAN2とLAN3だけで,LAN1をローカルのLANに割り当てるのは職場での使い方では筋が悪い,ということに気がつきました。RTX1210のwebGUIで簡単設定をすると,有無を言わせずLAN1をローカルのLANに割り当ててしまいます。しかも,VPNをwebGUIで設定するとLAN1がローカルである,という暗黙の前提でパラメータが設定されてしまいます。
10Gbpsを職場で有効に使うためには,LAN2をWANに,LAN3をローカルのLANにしてLAN1をDMZにしたいのです。
というわけで,設定をやり直すことにしました。
コンソールからログインして設定のパラメータを入れ替えると,あっという間に接続できなくなりました。恐ろしい。何が悪いのかわからず,どんどんツボにハマっていきます。
もう諦めて最初から設定することにしました(涙)。
FreeBSD 13.2Rでアプリケーション&ディスクサーバー(その7)
アプリケーションの設定もまだまだですが,ディスクの設定もせねばなりません。サーバーの電源をいったんおとして3.5inch HDD用のディスクラックに5台の8TBのHDDを入れて起動します。
SATAのスロットの0番から4番までにそれぞれada0からada4がつながっていてそれぞれSeagateのST8000DM004-2U9188 0001が600.000MB/sのSATA 3.xとして認識されています。
1. HDDのテーブルを初期化
まっさらのHDDなので特にやらなくてもよいのですが,一応,やっておきます。
dd if=/dev/zero of=/dev/ada0 bs=1m count=1
dd if=/dev/zero of=/dev/ada1 bs=1m count=1
dd if=/dev/zero of=/dev/ada2 bs=1m count=1
dd if=/dev/zero of=/dev/ada3 bs=1m count=1
dd if=/dev/zero of=/dev/ada4 bs=1m count=1
2. GPTパーティションを作成
gpart create -s gpt ada0
gpart create -s gpt ada1
gpart create -s gpt ada2
gpart create -s gpt ada3
gpart create -s gpt ada4
3. ファイルシステムの作成。オプションの-lはパーティションのラベル名
gpart add -t freebsd-zfs -l disk0 ada0
gpart add -t freebsd-zfs -l disk1 ada1
gpart add -t freebsd-zfs -l disk2 ada2
gpart add -t freebsd-zfs -l disk3 ada3
gpart add -t freebsd-zfs -l disk4 ada4
gpart statusとすると
Name Status Components
nvd0p1 OK nvd0
nvd0p2 OK nvd0
nvd0p3 OK nvd0
nvd0p4 OK nvd0
nvd1p1 OK nvd1
nvd1p2 OK nvd1
nvd1p3 OK nvd1
nvd1p4 OK nvd1
ada0p1 OK ada0
ada1p1 OK ada1
ada2p1 OK ada2
ada3p1 OK ada3
ada4p1 OK ada4
と表示されます。nvd0とnvd1はM.2のSSDディスクでHDDはada?p?です。
gpart showで,
=> 40 1000215136 nvd0 GPT (477G)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 8388608 3 freebsd-swap (4.0G)
8923136 991291392 4 freebsd-zfs (473G)
1000214528 648 - free - (324K)
=> 40 976773088 nvd1 GPT (466G)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 8388608 3 freebsd-swap (4.0G)
8923136 967849984 4 freebsd-zfs (462G)
976773120 8 - free - (4.0K)
=> 40 15628053088 ada0 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
=> 40 15628053088 ada1 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
=> 40 15628053088 ada2 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
=> 40 15628053088 ada3 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
=> 40 15628053088 ada4 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
Ned[0,1]のほうはすでにOSのインストールで(自動で)スライスに切っているのでスライスごとのアドレスが表示されています。ada?のほうは先ほど設定したfreebsd-zfsがディスク全体に割り当てられています。
4. ZFSストレージプールを作成
zrootはインストーラによってストレージプール名として使われているので別の名前のストレージプールを作成します(ここではzndata)。raidz2を指定してストレージプールを作成します。
zpool create zndata raidz2 /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2 /dev/gpt/disk3 /dev/gpt/disk4
zpool listとすると,
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
zndata 36.4T 1.16M 36.4T - - 0% 0% 1.00x ONLINE -
zroot 460G 22.3G 438G - - 0% 4% 1.00x ONLINE -
と表示されてzndataができていることがわかります。
zpool statusで,以下のようにでてきます。ちゃんとraid-z2でzndataが作られていることがわかります。
pool: zndata
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zndata ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
gpt/disk0 ONLINE 0 0 0
gpt/disk1 ONLINE 0 0 0
gpt/disk2 ONLINE 0 0 0
gpt/disk3 ONLINE 0 0 0
gpt/disk4 ONLINE 0 0 0
errors: No known data errors
pool: zroot
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvd0p4 ONLINE 0 0 0
nvd1p4 ONLINE 0 0 0
errors: No known data errors
最近は何も言わなくても自動的にファイルシステムはlz4による圧縮ドライブになるようです。
zfs get compress ratio
とやると圧縮率のリストが表示されます。
5. zndataをスライスに分割
zfs create zndata/home1
zfs create zndata/home2
zfs create zndata/home3
6. zndataのマウントポイントの設定
zfs createすると勝手にマウントされてしまうので
unmount /zndata/home1
unmount /zndata/home2
unmount /zndata/home3
unmount /zndata
として全部アンマウントします。そのうでlegacyに設定します。legacyにしておくと/etc/fstabをみてマウントするようになって,昔風味が好きな私にはわかりやすいのです。
zfs set mountpoint=legacy zndata
zfs set mountpoint=legacy zndata/home1
zfs set mountpoint=legacy zndata/home2
zfs set mountpoint=legacy zndata/home3
zfs listとすると,zndataのマウントポイントがlegacyになっていることがわかります。
NAME USED AVAIL REFER MOUNTPOINT
zndata 1.86M 21.4T 199K legacy
zndata/home1 170K 21.4T 170K legacy
zndata/home2 170K 21.4T 170K legacy
zndata/home3 170K 21.4T 170K legacy
zroot 22.3G 423G 96K /zroot
zroot/ROOT 20.6G 423G 96K none
zroot/ROOT/13.2-RELEASE-p9_2024-02-06_093128 8K 423G 2.45G /
zroot/ROOT/13.2-RELEASE_2024-02-03_220628 8K 423G 1.25G /
zroot/ROOT/default 20.6G 423G 20.1G /
zroot/tmp 208K 423G 208K /tmp
zroot/usr 1.69G 423G 96K /usr
zroot/usr/home 170M 423G 170M /usr/home
zroot/usr/ports 784M 423G 784M /usr/ports
zroot/usr/src 774M 423G 774M /usr/src
zroot/var 964K 423G 96K /var
zroot/var/audit 96K 423G 96K /var/audit
zroot/var/crash 96K 423G 96K /var/crash
zroot/var/log 400K 423G 400K /var/log
zroot/var/mail 180K 423G 180K /var/mail
zroot/var/tmp 96K 423G 96K /var/tmp
7. マウントポイントの設定
legacyでマウントするようにしたので/etc/fstabに以下の設定を追記します。もともと,efiブートとswapの設定が書かれていますのでその下に書き加えればOKです。
#
zndata/home1 /exports/home1 zfs rw 0 0
zndata/home2 /exports/home2 zfs rw 0 0
zndata/home3 /exports/home3 zfs rw 0 0
マウントポイントを作ってからマウントしてみます。
mkdir /exports
mkdir /exports/home1
mkdir /exports/home2
mkdir /exports/home3
mount /exports/home1
mount /exports/home2
mount /exports/home3
dfすると,/exports/home?にマウントできていることがわかります。
Filesystem 1K-blocks Used Avail Capacity Mounted on
zroot/ROOT/default 465138336 21067444 444070892 5% /
devfs 1 1 0 100% /dev
/dev/gpt/efiboot0 266176 1872 264304 1% /boot/efi
zroot 444070988 96 444070892 0% /zroot
zroot/tmp 444071100 208 444070892 0% /tmp
zroot/var/log 444071292 400 444070892 0% /var/log
zroot/var/audit 444070988 96 444070892 0% /var/audit
zroot/var/crash 444070988 96 444070892 0% /var/crash
zroot/usr/home 444245400 174508 444070892 0% /usr/home
zroot/usr/ports 444873928 803036 444070892 0% /usr/ports
zroot/usr/src 444863168 792276 444070892 0% /usr/src
zroot/var/mail 444071072 180 444070892 0% /var/mail
zroot/var/tmp 444070988 96 444070892 0% /var/tmp
zndata/home1 22979803451 170 22979803280 0% /exports/home1
zndata/home2 22979803451 170 22979803280 0% /exports/home2
zndata/home3 22979803451 170 22979803280 0% /exports/home3
8. nfsサーバー/クライアントの設定
/etc/exportsにnfsの共有の設定をします。
/exports/home1 -alldirs -network 192.168.0.0 -mask 255.255.0.0
/exports/home2 -alldirs -network 192.168.0.0 -mask 255.255.0.0
/exports/home3 -alldirs -network 192.168.0.0 -mask 255.255.0.0
/etc/rc.confに以下を追記します。
rpcbind_enable="YES"
mountd_enable="YES"
nfs_server_enable="YES"
nfs_client_enable="YES"
rpc_statd_enable="YES"
設定が終わったら再起動します。サーバーとしても,クライアントとしてnfsディスクをマウントしようとすると
[tcp] hoge:/exports/home1: RPCPROG_NULL: RPC: Timed out
[tcp] hoge:/exports/home1: RPCPROG_NFS: RPC: Port mapper failure - RPC: Timed out
[tcp] hoge:/exports/home1: RPCPROG_MNT: RPC: Timed out
などというエラーが時間をかけて1行づつ表示されてマウントできません。/var/log/messageにも何もエラーが残っていないのでどうも挙動がよくわかりません。時々,ちゃんとマウントできたりします。nicが腐っているのでしょうか。
9. sambaの設定
samba416をパッケージでインストールして/etc/rc.confに
samba_server_enable="YES"
を追加します。/usr/local/etc/smb4.confをおきます。設定については,以前にメモをしているとおりです。前に使っていたsmb4.confから設定内容で変更したのは,interfacesだけです。
SATAのスロットの0番から4番までにそれぞれada0からada4がつながっていてそれぞれSeagateのST8000DM004-2U9188 0001が600.000MB/sのSATA 3.xとして認識されています。
1. HDDのテーブルを初期化
まっさらのHDDなので特にやらなくてもよいのですが,一応,やっておきます。
dd if=/dev/zero of=/dev/ada0 bs=1m count=1
dd if=/dev/zero of=/dev/ada1 bs=1m count=1
dd if=/dev/zero of=/dev/ada2 bs=1m count=1
dd if=/dev/zero of=/dev/ada3 bs=1m count=1
dd if=/dev/zero of=/dev/ada4 bs=1m count=1
2. GPTパーティションを作成
gpart create -s gpt ada0
gpart create -s gpt ada1
gpart create -s gpt ada2
gpart create -s gpt ada3
gpart create -s gpt ada4
3. ファイルシステムの作成。オプションの-lはパーティションのラベル名
gpart add -t freebsd-zfs -l disk0 ada0
gpart add -t freebsd-zfs -l disk1 ada1
gpart add -t freebsd-zfs -l disk2 ada2
gpart add -t freebsd-zfs -l disk3 ada3
gpart add -t freebsd-zfs -l disk4 ada4
gpart statusとすると
Name Status Components
nvd0p1 OK nvd0
nvd0p2 OK nvd0
nvd0p3 OK nvd0
nvd0p4 OK nvd0
nvd1p1 OK nvd1
nvd1p2 OK nvd1
nvd1p3 OK nvd1
nvd1p4 OK nvd1
ada0p1 OK ada0
ada1p1 OK ada1
ada2p1 OK ada2
ada3p1 OK ada3
ada4p1 OK ada4
と表示されます。nvd0とnvd1はM.2のSSDディスクでHDDはada?p?です。
gpart showで,
=> 40 1000215136 nvd0 GPT (477G)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 8388608 3 freebsd-swap (4.0G)
8923136 991291392 4 freebsd-zfs (473G)
1000214528 648 - free - (324K)
=> 40 976773088 nvd1 GPT (466G)
40 532480 1 efi (260M)
532520 1024 2 freebsd-boot (512K)
533544 984 - free - (492K)
534528 8388608 3 freebsd-swap (4.0G)
8923136 967849984 4 freebsd-zfs (462G)
976773120 8 - free - (4.0K)
=> 40 15628053088 ada0 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
=> 40 15628053088 ada1 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
=> 40 15628053088 ada2 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
=> 40 15628053088 ada3 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
=> 40 15628053088 ada4 GPT (7.3T)
40 15628053088 1 freebsd-zfs (7.3T)
Ned[0,1]のほうはすでにOSのインストールで(自動で)スライスに切っているのでスライスごとのアドレスが表示されています。ada?のほうは先ほど設定したfreebsd-zfsがディスク全体に割り当てられています。
4. ZFSストレージプールを作成
zrootはインストーラによってストレージプール名として使われているので別の名前のストレージプールを作成します(ここではzndata)。raidz2を指定してストレージプールを作成します。
zpool create zndata raidz2 /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2 /dev/gpt/disk3 /dev/gpt/disk4
zpool listとすると,
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
zndata 36.4T 1.16M 36.4T - - 0% 0% 1.00x ONLINE -
zroot 460G 22.3G 438G - - 0% 4% 1.00x ONLINE -
と表示されてzndataができていることがわかります。
zpool statusで,以下のようにでてきます。ちゃんとraid-z2でzndataが作られていることがわかります。
pool: zndata
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zndata ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
gpt/disk0 ONLINE 0 0 0
gpt/disk1 ONLINE 0 0 0
gpt/disk2 ONLINE 0 0 0
gpt/disk3 ONLINE 0 0 0
gpt/disk4 ONLINE 0 0 0
errors: No known data errors
pool: zroot
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvd0p4 ONLINE 0 0 0
nvd1p4 ONLINE 0 0 0
errors: No known data errors
最近は何も言わなくても自動的にファイルシステムはlz4による圧縮ドライブになるようです。
zfs get compress ratio
とやると圧縮率のリストが表示されます。
5. zndataをスライスに分割
zfs create zndata/home1
zfs create zndata/home2
zfs create zndata/home3
6. zndataのマウントポイントの設定
zfs createすると勝手にマウントされてしまうので
unmount /zndata/home1
unmount /zndata/home2
unmount /zndata/home3
unmount /zndata
として全部アンマウントします。そのうでlegacyに設定します。legacyにしておくと/etc/fstabをみてマウントするようになって,昔風味が好きな私にはわかりやすいのです。
zfs set mountpoint=legacy zndata
zfs set mountpoint=legacy zndata/home1
zfs set mountpoint=legacy zndata/home2
zfs set mountpoint=legacy zndata/home3
zfs listとすると,zndataのマウントポイントがlegacyになっていることがわかります。
NAME USED AVAIL REFER MOUNTPOINT
zndata 1.86M 21.4T 199K legacy
zndata/home1 170K 21.4T 170K legacy
zndata/home2 170K 21.4T 170K legacy
zndata/home3 170K 21.4T 170K legacy
zroot 22.3G 423G 96K /zroot
zroot/ROOT 20.6G 423G 96K none
zroot/ROOT/13.2-RELEASE-p9_2024-02-06_093128 8K 423G 2.45G /
zroot/ROOT/13.2-RELEASE_2024-02-03_220628 8K 423G 1.25G /
zroot/ROOT/default 20.6G 423G 20.1G /
zroot/tmp 208K 423G 208K /tmp
zroot/usr 1.69G 423G 96K /usr
zroot/usr/home 170M 423G 170M /usr/home
zroot/usr/ports 784M 423G 784M /usr/ports
zroot/usr/src 774M 423G 774M /usr/src
zroot/var 964K 423G 96K /var
zroot/var/audit 96K 423G 96K /var/audit
zroot/var/crash 96K 423G 96K /var/crash
zroot/var/log 400K 423G 400K /var/log
zroot/var/mail 180K 423G 180K /var/mail
zroot/var/tmp 96K 423G 96K /var/tmp
7. マウントポイントの設定
legacyでマウントするようにしたので/etc/fstabに以下の設定を追記します。もともと,efiブートとswapの設定が書かれていますのでその下に書き加えればOKです。
#
zndata/home1 /exports/home1 zfs rw 0 0
zndata/home2 /exports/home2 zfs rw 0 0
zndata/home3 /exports/home3 zfs rw 0 0
マウントポイントを作ってからマウントしてみます。
mkdir /exports
mkdir /exports/home1
mkdir /exports/home2
mkdir /exports/home3
mount /exports/home1
mount /exports/home2
mount /exports/home3
dfすると,/exports/home?にマウントできていることがわかります。
Filesystem 1K-blocks Used Avail Capacity Mounted on
zroot/ROOT/default 465138336 21067444 444070892 5% /
devfs 1 1 0 100% /dev
/dev/gpt/efiboot0 266176 1872 264304 1% /boot/efi
zroot 444070988 96 444070892 0% /zroot
zroot/tmp 444071100 208 444070892 0% /tmp
zroot/var/log 444071292 400 444070892 0% /var/log
zroot/var/audit 444070988 96 444070892 0% /var/audit
zroot/var/crash 444070988 96 444070892 0% /var/crash
zroot/usr/home 444245400 174508 444070892 0% /usr/home
zroot/usr/ports 444873928 803036 444070892 0% /usr/ports
zroot/usr/src 444863168 792276 444070892 0% /usr/src
zroot/var/mail 444071072 180 444070892 0% /var/mail
zroot/var/tmp 444070988 96 444070892 0% /var/tmp
zndata/home1 22979803451 170 22979803280 0% /exports/home1
zndata/home2 22979803451 170 22979803280 0% /exports/home2
zndata/home3 22979803451 170 22979803280 0% /exports/home3
8. nfsサーバー/クライアントの設定
/etc/exportsにnfsの共有の設定をします。
/exports/home1 -alldirs -network 192.168.0.0 -mask 255.255.0.0
/exports/home2 -alldirs -network 192.168.0.0 -mask 255.255.0.0
/exports/home3 -alldirs -network 192.168.0.0 -mask 255.255.0.0
/etc/rc.confに以下を追記します。
rpcbind_enable="YES"
mountd_enable="YES"
nfs_server_enable="YES"
nfs_client_enable="YES"
rpc_statd_enable="YES"
設定が終わったら再起動します。サーバーとしても,クライアントとしてnfsディスクをマウントしようとすると
[tcp] hoge:/exports/home1: RPCPROG_NULL: RPC: Timed out
[tcp] hoge:/exports/home1: RPCPROG_NFS: RPC: Port mapper failure - RPC: Timed out
[tcp] hoge:/exports/home1: RPCPROG_MNT: RPC: Timed out
などというエラーが時間をかけて1行づつ表示されてマウントできません。/var/log/messageにも何もエラーが残っていないのでどうも挙動がよくわかりません。時々,ちゃんとマウントできたりします。nicが腐っているのでしょうか。
9. sambaの設定
samba416をパッケージでインストールして/etc/rc.confに
samba_server_enable="YES"
を追加します。/usr/local/etc/smb4.confをおきます。設定については,以前にメモをしているとおりです。前に使っていたsmb4.confから設定内容で変更したのは,interfacesだけです。