trešdiena, 2012. gada 8. augusts

NFS OpenVZ uz Debian

Kā piedabūt darboties NFS sējumus uz OpenVZ klientiem. 

Darbs notiek uz Debian saimnieka (kodols 2.6.32-5-openvz-amd64) - NFS klients darbojas konteinerī arī ar šo Debian kodolu, bet, ja nepieciešams konteinerī startēt arī NFS-kernel-server, tad saimnieksistēmā jālieto RHEL openvz kodols ( http://forum.openvz.org/index.php?t=msg&goto=43097 ).
Veidojot virtuālo mašīnu, gan jānorāda opcijas, ka klients izmantos NFS (ja to nedara, tad klientā tiek saņemts ziņojums
# mount -t nfs SERVER:/DIR /mnt
mount.nfs: No such device
):
vzctl create 4001 --ostemplate debian-6.0-x86 --hostname ovz-4001-nfstest
vzctl set 4001 --features nfs:on --save
vzctl set 4001 --ipadd 10.1.4.1 --save
vzctl start 4001
vzctl enter 4001

Nākamās grūtības sagādāja nfs-common uzstādīšana klientā. Instalējot pēc noklusējuma:
apt-get install nfs-common

tika saņemti kļūdas ziņojumi
Setting up nfs-common (1:1.2.2-4squeeze2) ...
insserv: Service portmap has to be enabled to start service nfs-common
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
dpkg: error processing nfs-common (--configure):
 subprocess installed post-installation script returned error exit status 1
configured to not write apport reports
                                      Errors were encountered while processing:
 nfs-common
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ja tika papildus pieinstalēts un startēts portmap serviss kā arī manuāli - /sbin/rpc.statd, tad NFS klients darbojās (mount -t nfs IP:/home/nfsout /mnt), bet pēc pārstartēšanas rpc.statd ir jāstartē ar roku.
Mūsdienās gan portmap vietā gan izmantojot rpcbind
nfs-common uzstādīšanu atrisināja sekojošā secība:
apt-get remove --purge portmap
apt-get remove --purge rpcbind
apt-get remove --purge nfs-common apt-get install portmap apt-get install nfs-common

Pēc tam no klienta varēja piemontēt NFS sējumus.