在XenServer 7.4 上啓用NFS共享服務

  早些時候曾寫過一篇博客《將XenServer系統盤上的未分配空間利用起來》,目的是想在XenServer配置一個NFS服務器,把常用ISO鏡像共享出來,方便安裝虛擬機,同時也把磁盤空間最大化利用起來。

  目前安裝的XenServer版本是7.4,默認NFS服務都安裝了,只是沒有啓用,其他版本的XenServer暫時未一一測試。查看已安裝的XenServer版本信息:

# cat /etc/redhat-release 
XenServer release 7.4.0 (xenenterprise)

  關於NFS的概念性的東西在這裏就不在贅述了,百度上一大把,那麼就直接進入啓用XenServer的NFS服務流程。

一、rpcbind服務配置

  查看rpcbind服務狀態:

# systemctl status rpcbind.service
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
  Drop-In: /etc/systemd/system/rpcbind.service.d
           └─slice.conf
   Active: inactive (dead)
  顯示rpcbind服務已啓用,但服務未啓動,那麼先啓動rpcbind服務:
# systemctl start rpcbind.service
  再次查看rpcbind服務狀態:
# systemctl status rpcbind.service
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
  Drop-In: /etc/systemd/system/rpcbind.service.d
           └─slice.conf
   Active: active (running) since Sat 2018-05-26 20:26:01 CST; 3s ago
  Process: 26334 ExecStart=/sbin/rpcbind -w ${RPCBIND_ARGS} (code=exited, status=0/SUCCESS)
 Main PID: 26336 (rpcbind)
   CGroup: /control.slice/rpcbind.service
           └─26336 /sbin/rpcbind -w
  查看rpcbind服務偵聽的端口:
# netstat -lntup|grep rpcbind
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      26336/rpcbind       
tcp6       0      0 :::111                  :::*                    LISTEN      26336/rpcbind       
udp        0      0 0.0.0.0:111             0.0.0.0:*                           26336/rpcbind       
udp        0      0 0.0.0.0:646             0.0.0.0:*                           26336/rpcbind       
udp6       0      0 :::111                  :::*                                26336/rpcbind       
udp6       0      0 :::646                  :::*                                26336/rpcbind 
  或:
lsof -i :111
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 26336  rpc    6u  IPv4 129212      0t0  UDP *:sunrpc 
rpcbind 26336  rpc    8u  IPv4 129214      0t0  TCP *:sunrpc (LISTEN)
rpcbind 26336  rpc    9u  IPv6 129215      0t0  UDP *:sunrpc 
rpcbind 26336  rpc   11u  IPv6 129217      0t0  TCP *:sunrpc (LISTEN)
  或:
# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper

二、nfs-server服務配置

  查看nfs-server服務狀態

# systemctl status nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
  顯示nfs-server服務在開機時未啓動,即禁用狀態。那麼首先設置nfs服務開機啓動:
# systemctl enable nfs-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
  查看nfs-server服務是否開機啓動:
# systemctl list-unit-files nfs-server.service
UNIT FILE          STATE  
nfs-server.service enabled

1 unit files listed.
  啓動和查看nfs-server服務
# systemctl start nfs-server.service
# systemctl status nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since Sat 2018-05-26 20:52:45 CST; 24s ago
  Process: 540 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 537 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 540 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

三、NFS共享設置

  創建共享目錄和設置共享權限:

# mkdir -p /nfs/iso
# chown -R nfsnobody.nfsnobody /nfs/iso/
  NFS exports文件的配置格式如下:
NFS共享的目錄 NFS客戶端地址1(參數1,參數2,...) 客戶端地址2(參數1,參數2,...)
  關於NFS客戶端地址的設置類型如下:
指定IP: 192.168.0.1
指定子網所有主機: 192.168.0.0/24
指定域名的主機: test.com
指定域名所有主機: *.test.com
所有主機: *
  參數說明如下:
ro:目錄只讀
rw:目錄讀寫
sync:將數據同步寫入內存緩衝區與磁盤中,效率低,但可以保證數據的一致性
async:將數據先保存在內存緩衝區中,必要時才寫入磁盤
all_squash:將遠程訪問的所有普通用戶及所屬組都映射爲匿名用戶或用戶組(nfsnobody)
no_all_squash:與all_squash取反(默認設置)
root_squash:將root用戶及所屬組都映射爲匿名用戶或用戶組(默認設置)
no_root_squash:與rootsquash取反
anonuid=xxx:將遠程訪問的所有用戶都映射爲匿名用戶,並指定該用戶爲本地用戶(UID=xxx)
anongid=xxx:將遠程訪問的所有用戶組都映射爲匿名用戶組賬戶
  設置共享:
# vi /etc/exports
然後追加:
/nfs/iso        192.168.100.0/24(rw,sync,all_squash)
  重新加載NFS配置:
# exportfs -rv
exporting 192.168.100.0/24:/nfs/iso
  查看NFS服務器掛載情況:
# showmount -e 192.168.100.10
Export list for 192.168.100.10:
/nfs/iso 192.168.100.0/24

  最後要注意防火牆端口設置。

四、上傳ISO文件到XenServer共享目錄

  首先在XenServer上安裝“lrzsz”文件上傳下載組件,然後使用rz命令上傳ISO鏡像,注意ISO鏡像文件名中不能包含中文字符,否則XenCenter中無法掃描到該ISO鏡像。

# yum -y --enablerepo=base install lrzsz
# rz

五、XenCenter中使用NFS共享ISO庫

  1. 新建SR

  

  2. 選擇新建的存儲類型,這裏選NFS ISO:

  

  3. 設置存儲名稱:

  

  4. 設置存儲路徑,即NFS共享路徑。注意這裏的路徑中的服務器地址使用的是域名,需要事先在本機host配置中添加一條域名解析記錄:

  

  5. 剛創建的ISO庫中已經可以看到剛上傳的鏡像文件了:

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章