Nfs
兩個指向同一位置的 NFS 導出(不知何故)
我正在執行具有兩個導出的 NFS 伺服器:
/mnt/sda1 192.168.1.254/255.255.255.0(rw,fsid=1,no_subtree_check,all_squash,anonuid=0,anongid=0,insecure) /mnt/sdb1 192.168.1.254/255.255.255.0(rw,fsid=1,no_subtree_check,all_squash,anonuid=0,anongid=0,insecure)
在伺服器上,如果我 cd 到任一目錄,它們顯然是非常不同的驅動器。
/dev/sda1 1.8T 1.7T 8.6G 100% /mnt/sda1 /dev/sdb1 2.0T 1.3T 603.9G 68% /mnt/sdb1
但是,如果我將這些 nfs 共享掛載在客戶端上,則掛載 /mnt/sdb1 似乎直接指向 /mnt/sda1。
sudo mount 192.168.1.123:/mnt/sdb1 /media/test
然後在客戶端上使用 df -h
192.168.1.123:/mnt/sdb1 1.8T 1.7T 8.6G 100% /media/test
正如您在上面看到的,即使僅基於儲存空間,這實際上是 /mnt/sda1。
該伺服器已經執行了很長時間,我隱約記得大約 5 年前我在玩 lvm 磁碟管理東西(但從未讓它工作)並且可能配置了一些導致這種奇怪行為的東西 - 但我不確定. 我什至不確定從哪裡開始,因為這對Google來說是一種艱難的行為。幫助表示讚賞!
我在這裡做出有根據的猜測:這種行為可能是由
fsid=1
兩個出口的選項引起的。根據
exports
手冊頁,該fsid
選項用於辨識文件系統:NFS 需要能夠辨識它導出的每個文件系統。通常它會使用文件系統的 UUID(如果文件系統有這樣的東西)或保存文件系統的設備的設備號(如果文件系統儲存在設備上)。
由於並非所有文件系統都儲存在設備上,而且並非所有文件系統都有 UUID,因此有時需要明確告訴 NFS 如何辨識文件系統。這是通過
fsid=
選項完成的。導出可能具有
/mnt/sda1
優先權,因為它在導出文件中較早(即它被映射到fsid=1
第一個)。如果上述假設成立,那麼問題的解決方案應該很簡單:只需為導出分配一個不同
fsid
的/mnt/sdb1
值。