Поиск по сайту:

Настройка сервера и клиента NFS в CentOS 7.2


Это руководство существует для этих версий ОС

  • CentOS 7.2
  • CentOS 5.5

На этой странице

  1. 1 Предварительное примечание
  2. 2 Настройте брандмауэр
  3. 3 Установка NFS
  4. 4 Экспорт каталогов на сервере
  5. 5 Подключение общих ресурсов NFS на клиенте
  6. 6 Тестирование
  7. 7 Подключение общих ресурсов NFS во время загрузки
  8. 8 ссылок

В этом руководстве объясняется, как настроить сервер NFS и клиент NFS в CentOS 7. NFS означает Сетевая файловая система; через NFS клиент может получить доступ (чтение, запись) к удаленному общему ресурсу на сервере NFS, как если бы он находился на локальном жестком диске. Я буду использовать минимальный сервер CentOS 7.2 в качестве основы для установки.

1 Предварительное примечание

Я использую две системы CentOS здесь:

  • Сервер NFS: server.example.com, IP-адрес: 192.168.1.100
  • Клиент NFS: client.example.com, IP-адрес: 192.168.1.101

В этом уроке я буду использовать редактор nano для редактирования файлов конфигурации. Nano можно установить так.

yum -y install nano

2 Настройте брандмауэр

Я рекомендую установить брандмауэр. Если у вас еще не установлен firewalld и вы хотите использовать брандмауэр, установите его с помощью следующих команд:

yum -y install firewalld

запустите брандмауэр и включите его во время загрузки.

systemctl start firewalld.service
systemctl enable firewalld.service

Затем откройте порты SSH и NFS, чтобы убедиться, что вы сможете подключиться к серверу по SSH для целей администрирования и по NFS из нашего клиента NFS.

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload

3 Установка NFS

На сервере NFS запускаем:

yum -y install nfs-utils

Затем включите и запустите службу сервера nfs.

systemctl enable nfs-server.service
systemctl start nfs-server.service

На клиенте мы можем установить NFS следующим образом (это фактически то же самое, что и на сервере):

yum install nfs-utils

4 Экспорт каталогов на сервере

Я хочу сделать каталоги /home и /var/nfs доступными для клиента; поэтому мы должны «экспортировать» их на сервер.

Когда клиент получает доступ к общему ресурсу NFS, обычно это происходит от имени пользователя nfsnobody. Обычно каталог /home не принадлежит nfsnobody (и я не рекомендую менять его владельца на nfsnobody!), и поскольку мы хотим читать и писать в /home, мы указываем NFS, что доступ должен осуществляться от имени пользователя root (если наш /home доля была доступна только для чтения, в этом не было необходимости). Каталог /var/nfs не существует, поэтому мы можем создать его и изменить его владельца на пользователя и группу nfsnobody.

mkdir /var/nfs
chown nfsnobody:nfsnobody /var/nfs
chmod 755 /var/nfs

Теперь мы должны изменить /etc/exports, куда мы «экспортируем» наши ресурсы NFS. Мы указываем /home и /var/nfs как общие ресурсы NFS и сообщаем NFS, чтобы доступ к /home был как root (чтобы узнать больше о /etc/exports, его формате и доступных параметрах, взгляните на

man 5 exports

)

nano /etc/exports
/home           192.168.1.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        192.168.1.101(rw,sync,no_subtree_check)

(Опция no_root_squash означает, что /home будет доступен как root.)

Всякий раз, когда мы модифицируем /etc/exports, мы должны запустить:

exportfs -a

впоследствии, чтобы сделать изменения эффективными.

5 Установка общих ресурсов NFS на клиенте

Сначала мы создаем каталоги, в которые мы хотим смонтировать общие ресурсы NFS, например:

mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs

После этого мы можем смонтировать их следующим образом:

mount 192.168.1.100:/home /mnt/nfs/home
mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs

Теперь вы должны увидеть две общие папки NFS в выходных данных

df -h
[ ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

и

mount
[ ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

6 Тестирование

На клиенте теперь вы можете попытаться создать тестовые файлы на общих ресурсах NFS:

touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt

Теперь перейдите на сервер и проверьте, видите ли вы оба тестовых файла:

ls -l /home/
[ ~]# ls -l /home/
total 0
drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator
-rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt
ls -l /var/nfs
[ ~]# ls -l /var/nfs
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt

(Обратите внимание на разных владельцев тестовых файлов: доступ к общему ресурсу /home NFS осуществляется с правами root, поэтому /home/test.txt принадлежит пользователю root; доступ к общему ресурсу /var/nfs осуществляется с правами none/65534, поэтому /var/ nfs/test.txt принадлежит 65534.)

7. Монтирование общих ресурсов NFS во время загрузки

Вместо ручного монтирования общих ресурсов NFS на клиенте вы можете изменить файл /etc/fstab, чтобы общие ресурсы NFS монтировались автоматически при загрузке клиента.

Откройте /etc/fstab и добавьте следующие строки:

nano /etc/fstab
[...]
192.168.1.100:/home  /mnt/nfs/home   nfs      rw,sync,hard,intr  0     0
192.168.1.100:/var/nfs  /mnt/nfs/var/nfs   nfs      rw,sync,hard,intr  0     0

Вместо rw,sync,hard,intr можно использовать разные варианты монтирования. Чтобы узнать больше о доступных опциях, см.

man nfs

Чтобы проверить, работает ли ваш модифицированный файл /etc/fstab, перезагрузите клиент:

reboot

После перезагрузки вы должны найти две общие папки NFS в выходных данных

df -h
[ ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

и

mount
[ ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

8 ссылок

  • NFS для Linux: http://nfs.sourceforge.net/
  • CentOS: http://www.centos.org/