1 Preliminary Note
I'm using two CentOS systems here:- NFS Server: server.example.com, IP address: 192.168.0.100
- NFS Client: client.example.com, IP address: 192.168.0.101
2 Installing NFS
server:
On the NFS server we run:yum install nfs-utils nfs-utils-lib
chkconfig --levels 235 nfs on
/etc/init.d/nfs start
/etc/init.d/nfs start
client:
On the client we can install NFS as follows (this is actually the same as on the server):yum install nfs-utils nfs-utils-lib
3 Exporting Directories On The Server
server:
I'd like to make the directories /home and /var/nfs accessible to the client; therefore we must "export" them on the server.When a client accesses an NFS share, this normally happens as the user nobody. Usually the /home directory isn't owned by nobody (and I don't recommend to change its ownership to nobody!), and because we want to read and write on /home, we tell NFS that accesses should be made as root (if our /home share was read-only, this wouldn't be necessary).
The /var/nfs directory doesn't exist, so we can create it and change its ownership; in my tests the user and group nobody both had the ID 99 on both my CentOS test systems (server and client); when I tried to write to /var/nfs from the NFS client, I got a Permission denied error, so I did a chmod 777 /var/nfs so that everyone could write to that directory; writing to /var/nfs from the client worked then, and on the client the files written to /var/nfs appeared to be owned by the user and group nobody, but on the server they were owned by the (nonexistant) user and group with the ID 65534; so I changed ownership of /var/nfs to the user/group 65534 on the server and changed permissions of /var/nfs back to 755, and voilĂ , the client was allowed to write to /var/nfs:
mkdir /var/nfs
chown 65534:65534 /var/nfs
chmod 755 /var/nfs
chown 65534:65534 /var/nfs
chmod 755 /var/nfs
man 5 exports
)vi /etc/exports
/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
Whenever we modify /etc/exports, we must run
exportfs -a
afterwards to make the changes effective.4 Mounting The NFS Shares On The Client
client:
First we create the directories where we want to mount the NFS shares, e.g.:mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
mkdir -p /mnt/nfs/var/nfs
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
df -h
[root@client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
28G 2.2G 25G 8% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 250M 0 250M 0% /dev/shm
192.168.0.100:/home 28G 2.6G 25G 10% /mnt/nfs/home
192.168.0.100:/var/nfs
28G 2.6G 25G 10% /mnt/nfs/var/nfs
[root@client ~]#
andFilesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
28G 2.2G 25G 8% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 250M 0 250M 0% /dev/shm
192.168.0.100:/home 28G 2.6G 25G 10% /mnt/nfs/home
192.168.0.100:/var/nfs
28G 2.6G 25G 10% /mnt/nfs/var/nfs
[root@client ~]#
mount
[root@client ~]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.0.100)
[root@client ~]#
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.0.100)
[root@client ~]#
5 Testing
On the client, you can now try to create test files on the NFS shares:client:
touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt
touch /mnt/nfs/var/nfs/test.txt
server:
ls -l /home/
[root@server ~]# ls -l /home/
total 55540
-rw-r--r-- 1 root root 0 Sep 16 17:30 test.txt
[root@server ~]#
total 55540
-rw-r--r-- 1 root root 0 Sep 16 17:30 test.txt
[root@server ~]#
No comments:
Post a Comment