HƯỚNG DẪN Thiết lập NFS Server và Client trên CentOS 7.2

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 2/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Hướng dẫn này sẽ hướng dẫn bạn thiết lập một máy chủ NFS và một client NFS trên CentOS 7. NFS là viết tắt của Network File System; thông qua NFS, một client có thể truy cập (đọc, viết) tới một thư mục chia sẻ từ xa trên một máy chủ NFS. Tôi sẽ sử dụng một máy chủ CentOS 7.2 để làm cơ sở cho việc cài đặt.
    1. Lưu ý
    Tôi đang sử dụng hai hệ thống CentOS ở đây:
    NFS Server: server.example.com, địa chỉ IP: 192.168.1.100
    NFS Client: client.example.com, địa chỉ IP: 192.168.1.101

    2. Cấu hình Firewall
    Cài đặt firewalld với lệnh sau:
    Mã:
    yum -y install firewalld
    Khởi động firewalld và cho phép nó được bắt đầu vào lúc khởi động.
    Mã:
    systemctl start firewalld.service
    systemctl enable firewalld.service
    
    Tiếp theo, mở SSH và cổng NFS để đảm bảo rằng bạn sẽ có thể kết nối đến máy chủ bằng SSH cho mục đích quản trị và bằng NFS từ client của chúng tôi.
    Mã:
    firewall-cmd --permanent --zone=public --add-service=ssh
    firewall-cmd --permanent --zone=public --add-service=nfs
    firewall-cmd --reload
    
    3. Cài đặt NFS
    Server:
    Trên máy chủ NFS chúng tôi chạy lệnh:
    Mã:
    yum -y install nfs-utils
    Sau đó, kích hoạt và bắt đầu dịch vụ máy chủ nfs.
    Mã:
    systemctl enable nfs-server.service
    systemctl start nfs-server.service
    
    Client:
    Trên client, chúng ta có thể cài đặt NFS như sau (điều này là thực sự giống như trên server):
    Mã:
    yum -y install nfs-utils

    4. Export thư mục trên máy chủ

    Server:
    Tôi muốn làm cho các thư mục /home và /var/nfs có thể truy cập tới khách hàng; do đó chúng ta phải export chúng trên máy chủ.

    Khi một khách hàng truy cập một chia sẻ NFS, điều này thường xảy ra với user nfsnobody. Thông thường các thư mục /home không thuộc sở hữu của nfsnobody (và tôi không khuyên bạn nên thay đổi quyền sở hữu của thư mục đó sang nfsnobody).
    Bởi vì chúng tôi muốn đọc và viết vào /home và chúng tôi muốn các truy cập NFS nên được thực hiện với user root. Các thư mục /var/nfs không tồn tại, vì vậy chúng tôi có thể tạo ra nó và thay đổi quyền sở hữu tới user và group nfsnobody.
    Mã:
    mkdir /var/nfs
    chown nfsnobody:nfsnobody /var/nfs
    chmod 755 /var/nfs
    
    Bây giờ chúng ta phải sửa đổi tập tin /etc/exports nơi chúng tôi export thư mục chia sẻ NFS. Chúng tôi xác định thư mục /home và /var/nfs làm thư mục chia sẻ NFS và cấu hình NFS để truy cập vào thư mục /home phải là user root.

    Để tìm hiểu thêm về /etc/exports, định dạng của nó và các tùy chọn có sẵn, hãy dùng lệnh sau:
    Mã:
    man 5 exports
    Mở tập tin /etc/exports
    Mã:
    vim /etc/exports
    Mã:
    /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 sẽ cho biết thư mục /home sẽ phải được truy cập bằng user root.)

    Bất cứ khi nào chúng ta chỉnh sửa /etc/exports , chúng tôi phải chạy lệnh sau:
    Mã:
    exportfs -a
    sau đó, các thay đổi sẽ có hiệu lực.

    5. Gắn kết (mount) thư mục chia sẻ NFS trên Client

    Client:
    Đầu tiên chúng ta tạo ra thư mục nơi mà chúng tôi muốn gắn kết các thư mục chia sẻ NFS, ví dụ:
    Mã:
    mkdir -p /mnt/nfs/home
    mkdir -p /mnt/nfs/var/nfs
    
    Sau đó, chúng ta có thể gắn kết chúng như sau:
    Mã:
    mount 192.168.1.100:/home /mnt/nfs/home
    mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs
    
    Bây giờ bạn sẽ nhìn thấy hai thư mục chia sẻ NFS trong các kết quả đầu ra của lệnh sau:
    Mã:
    df -h
    Mã:
    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
    

    Mã:
    mount
    Mã:
    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. Kiểm tra
    Trên client bây giờ bạn tạo ra các tập tin thử nghiệm trên các thư mục chia sẻ NFS:
    Client:
    Mã:
    touch /mnt/nfs/home/test.txt
    touch /mnt/nfs/var/nfs/test.txt
    
    Bây giờ đi tới server và kiểm tra xem bạn có thể nhìn thấy cả hai tập tin thử nghiệm.
    Server:
    Mã:
    ls -l /home/
    Mã:
    total 0
    -rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt
    
    Mã:
    ls -l /var/nfs
    Mã:
    total 0
    -rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt
    
    7. Gắn kết thư mục chia sẻ NFS tại thời gian khởi động
    Thay vì gắn kết các thư mục chia sẻ NFS bằng tay trên client bạn có thể chỉnh sửa /etc/fstab để các thư mục chia sẻ NFS được gắn kết tự động khi khởi động máy client.
    Client:
    Mở /etc/fstab và thêm các dòng sau:
    Mã:
    nano /etc/fstab
    Mã:
    [...]
    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
    
    Để tìm hiểu thêm về các tùy chọn có sẵn khác, hãy dùng lệnh:
    Mã:
    man nfs
    Để kiểm tra nếu sửa đổi /etc/fstab đang làm việc, khởi động lại client:
    Mã:
    reboot
    Sau khi khởi động, bạn sẽ tìm thấy hai thư mục chia sẻ NFS trong các kết quả đầu ra của lệnh sau:
    Mã:
    df -h
    Mã:
    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
    

    Mã:
    mount
    Mã:
    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)
    
     

Chia sẻ trang này

Đang tải...