早些時候曾寫過一篇博客《將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庫中已經可以看到剛上傳的鏡像文件了: