Setup NFS Server và Client trên CentOS 7.x để chia sẻ dữ liệu

NFS viết tắt cho Network File System; Thông qua NFS, các máy tính có thể chia sẻ dữ liệu (đọc, ghi/xóa) như thể nằm ngay trên ổ đĩa cứng của máy mình.

Bài hướng dẫn sẽ sử dụng 2 máy tính cài đặt Centos 7 như sau:

  • NFS Server: server.tgs.com.vn, IP address: 192.168.1.100
  • NFS Client: client.tgs.com.vn, IP address: 192.168.1.101

Bước 1: Cấu hình Firewall

Sử dụng firewall mặc định của Centos 7

 yum -y install firewalld

Khởi động và đặt chế độ khởi động mặc định

systemctl start firewalld.service
systemctl enable firewalld.service

Mở các port SSH và NFS

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

Bước 2: Cài đặt NFS

Trên server, ta chạy lệnh:

yum -y install nfs-utils

Sau đó khởi động nfs server service.

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

Trên client:

yum install nfs-utils

Bước 3: Tạo thư mục chia sẻ trên Server

Trên server ta tạo thư mục /home và /var/nfs .Khi truy cập vào một vùng NFS share, user thực hiện là nfsnobody. Thông thường /home không được own bởi nfsnobody và vì chúng ra muốn đọc và ghi trên /home, ta nên để cho NFS biết rằng truy nhập đó thực hiện bởi root. Thư mục /var/nfs không tồn tại, ta phải tạo nó và thay đổi ownership thành nfsnobody.

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

Sử dụng export để khai báo phân vùng sử dụng NFS share

vi /etc/exports

Sau đó thêm vào:

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

Tùy chọn no_root_squash để /home được access bởi root. Sau đó chạy lệnh:

exportfs -a

Bước 4: Mount NFS Shares trên Client

Trên client, trước tiên tạo các các thư mục sau để mount NFS share

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

Sau đó mount vào như sau:

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

Khi đó sẽ thấy 2 phân vùng như sau:

df -h
[root@client ~]# 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

Bước 5: Kiểm tra

Trên máy Client, tạo các file trên NFS share

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

Chuyển sang server để kiểm tra các file này

ls -l /home/
[root@server1 ~]# 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
[root@server1 ~]# ls -l /var/nfs
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt

Chú ý rằng, ownership của file test trọng /home sẽ nhận quyền của thư mục root nên các file cũng có ownership là root còn /var/nfs nhận ownership là nfsnobody.

Xem thêm:  Hướng dẫn vô hiệu hoá SELinux trên CentOS 8

Bước 6: Mount NFS Shares lúc khởi động

Để NFS share luôn được mount kể cả khi khởi động lại, ta làm như sau:

vi /etc/fstab

Thêm vào dòng sau:

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

Chú ý các tùy chọn rw,sync,hard,intr của NFS

Như vậy chúng ta đã cài đặt xong NFS Server. Chúc bạn thành công

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận