Ubuntu16環境安裝和使用NFS

  • 2020 年 9 月 22 日
  • 筆記

通過NFS服務我們可以方便的讀寫伺服器上的文件,一起來實戰Ubuntu16環境安裝和使用NFS;

文章概要

本次實戰由以下步驟組成:

  1. 列舉環境資訊;
  2. 192.168.119.128安裝NFS服務,將此機器作為NFS伺服器;
  3. 192.168.119.155安裝NFS客戶端,將此機器作為NFS客戶端;
  4. 在客戶端驗證NFS服務;
  5. 客戶端取消掛載;

環境資訊

本次實戰用到兩台Ubuntu16的機器,如下圖所示:
這裡寫圖片描述

安裝NFS服務

在192.168.119.128機器上執行以下操作:

  1. 創建一個文件夾作為共享文件目錄:/usr/local/work/nfs
  2. 給文件夾增加讀寫許可權:
chmod a+rw /usr/local/work/nfs
  1. apt更新:
apt-get update
  1. 安裝NFS服務應用:
apt-get install nfs-kernel-server
  1. 配置NFS服務目錄,打開文件/etc/exports,在尾部新增一行,內容如下:
/usr/local/work/nfs *(rw,sync,no_subtree_check)

這一行的意思是將/usr/local/work/nfs作為服務文件夾向客戶端開放,*表示任何IP都可以訪問,rw是讀寫許可權,sync是同步許可權,no_subtree_check表示如果輸出目錄是一個子目錄,nfs伺服器不檢查其父目錄的許可權;
6. 執行以下命令重啟服務,使配置生效:

/etc/init.d/nfs-kernel-server restart

至此,NFS服務就準備好了,接下來我們去準備NFS客戶端;

安裝NFS客戶端

在192.168.119.155機器上執行以下操作:

  1. 安裝客戶端應用:
apt-get install -y nfs-common
  1. 用mkdir命令創建一個文件夾/usr/local/work/nfs-mount
  2. 將NFS伺服器的/usr/local/work/nfs目錄掛載到NFS客戶端的/usr/local/work/nfs-mount目錄,執行以下命令:
mount 192.168.119.128:/usr/local/work/nfs  /usr/local/work/nfs-mount
  1. 執行命令/usr/local/work/nfs看一下掛載資訊,如下:
root@maven:~# df
Filesystem                          1K-blocks     Used Available Use% Mounted on
udev                                   480820        0    480820   0% /dev
tmpfs                                   99828     4856     94972   5% /run
/dev/sda1                            59732092 12798824  43876016  23% /
tmpfs                                  499136        0    499136   0% /dev/shm
tmpfs                                    5120        0      5120   0% /run/lock
tmpfs                                  499136        0    499136   0% /sys/fs/cgroup
/dev/loop5                              12288    12288         0 100% /snap/kubectl/328
/dev/loop3                              83328    83328         0 100% /snap/core/3887
/dev/loop0                              12288    12288         0 100% /snap/kubectl/303
/dev/loop4                              83712    83712         0 100% /snap/core/4017
/dev/loop1                              12288    12288         0 100% /snap/kubectl/346
/dev/loop2                              83584    83584         0 100% /snap/core/4110
tmpfs                                   99828        0     99828   0% /run/user/0
192.168.119.128:/usr/local/work/nfs  59732224  3238912  53435904   6% /usr/local/work/nfs-mount

注意最下面一行的內容:192.168.119.128:/usr/local/work/nfs 59732224 3238912 53435904 6% /usr/local/work/nfs-mount,已經將遠程文件夾掛載到了本地文件夾;

至此,NFS客戶端安裝完畢,掛載成功;

驗證NFS服務

在192.168.119.155機器上執行以下操作,:

  1. 在NFS客戶端上執行以下命令,將本機的IP地址資訊輸出到NFS目錄下的test.txt文件中:
ip addr > /usr/local/work/nfs-mount/test.txt
  1. 在NFS服務端執行命令<font color=”blue>cat /usr/local/work/nfs/test.txt,可以看到上一步生成的test.txt文件的內容,證明NFS服務已經生效,如下:
root@nfs:~# cat /usr/local/work/nfs/test.txt 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:65:66:54 brd ff:ff:ff:ff:ff:ff
    inet 192.168.119.155/24 brd 192.168.119.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe65:6654/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:f0:b9:8e:5d brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

可見NFS的服務已經正常運行;

客戶端取消掛載

  1. 如果客戶端不再需要NFS服務,想取消這個文件夾的掛載,執行以下命令即可:
umount /usr/local/work/nfs-mount

注意:不要在/usr/local/work/nfs-mount目錄執行這個命令,否則會如下報錯:

root@maven:/usr/local/work/nfs-mount# umount /usr/local/work/nfs-mount 
umount.nfs4: /usr/local/work/nfs-mount: device is busy

應該退出/usr/local/work/nfs-mount之後再執行umount命令;
2. 取消掛載後,去NFS客戶端的/usr/local/work/nfs-mount目錄下看已經沒有文件了;
3. 取消掛載後,去NFS服務端的/usr/local/work/nfs目錄下看,文件還在,不受影響;

至此,Ubuntu16環境安裝和使用NFS的實戰就全部結束了,希望以上操作能助您快速搭建NFS服務;

歡迎關注我的公眾號:程式設計師欣宸

//github.com/zq2599/blog_demos