Network File System (NFS) là một hệ thống tập tin cho phép người sử dụng máy tính truy cập các tập tin trên một mạng trong cùng một cách mà họ có thể truy cập các tập tin lưu trữ cục bộ. Điều này rất hữu ích cho việc chia sẻ các tập tin trên máy chủ hoặc các máy tính khác trên Internet. Ví dụ, bạn có thể muốn chia sẻ các thư mục mẹ cho người dùng của bạn, hoặc các tập tin cấu hình hệ thống, qua NFS. Hướng dẫn này sẽ sử dụng thiết lập của hai server; một server như các máy chủ NFS, và server còn lại như NFS client. Trong ví dụ này, cả hai server đang ở trong trung tâm dữ liệu giống nhau và sẽ liên lạc bằng địa chỉ IP riêng. Cài đặt NFS Server Chọn một server là NFS server của bạn. Thực hiện theo các hướng dẫn dưới đây để cấu hình nó: Cập nhật gói dữ liệu của bạn: Mã: apt-get update Cài đặt gói máy chủ NFS nfs-kernel-server: Mã: apt-get install nfs-kernel-server Tạo một thư mục trong hệ thống tập tin của bạn. Thư mục này sẽ được sử dụng như là thư mục root của chia sẻ NFS: Mã: mkdir /var/nfsroot Sử dụng trình soạn thảo yêu thích của bạn để thêm các dòng sau vào tập tin /etc/exports: Mã: /var/nfsroot <client private ip>/32(rw,root_squash,subtree_check) Thay <client linode private ip> với địa chỉ IP riêng hiện tại của server thứ hai của bạn. Cập nhật bảng của hệ thống tập tin export với các lệnh sau đây: Mã: sudo exportfs -a Khởi động dịch vụ NFS: Mã: sudo service nfs-kernel-server start Cài đặt NFS Client Server thứ hai sẽ được cấu hình là NFS Client. Thực hiện theo các hướng dẫn dưới đây để cấu hình nó: Cập nhật gói dữ liệu của bạn: Mã: apt-get update Cài đặt gói NFS client nfs-common: Mã: apt-get install nfs-common Tạo một thư mục trong hệ thống tập tin của bạn. Thư mục này sẽ được sử dụng để gắn kết với hệ thống tập tin từ server thứ nhất: Mã: mkdir /mnt/remotenfs Sử dụng trình soạn thảo yêu thích của bạn để thêm các dòng sau vào tập tin /etc/fstab: Mã: <server linode private ip>:/var/nfsroot /mnt/remotenfs nfs rw,async,hard,intr 0 0 Thay <server linode private ip> với địa chỉ IP riêng hiện tại của server thứ nhất của bạn. Gắn kết hệ thống tập tin bằng cách chạy lệnh sau: Mã: mount /mnt/remotenfs Khởi động dịch vụ NFS: Mã: sudo service nfs-kernel-server start Và bạn đã hoàn tất! Từ bây giờ, tại client bạn có truy cập hệ thống tập tin từ xa được lưu trữ trên máy chủ . Bạn có thể thêm nhiều client hơn bằng cách thêm chúng vào tập tin /etc/exports trên máy chủ, và lặp đi lặp lại các thiết lập của client ở trên đối với mỗi client. Cấu hình nâng cao NFS cung cấp một số tùy chọn mount. Các tùy chọn sẽ được trình bày sau đây: Các tùy chọn cho Client Các tùy chọn này có thể được xác định bằng cách sử dụng lệnh mount, hoặc thêm vào tập tin /etc/fstab: rw: đọc/ghi hệ thống tập tin. ro: chỉ được đọc hệ thống tập tin. khách hàng NFS từ xa không thể sửa đổi hệ thống tập tin. hard: Các ứng dụng sử dụng các tập tin được lưu trữ trên một NFS sẽ luôn luôn chờ đợi nếu các máy chủ down. Người dùng không thể chấm dứt quá trình trừ khi tùy chọn intr được thiết lập. soft: ứng dụng sử dụng các tập tin được lưu trữ trên một NFS sẽ chờ đợi một thời gian quy định (sử dụng tùy chọn timeo) nếu máy chủ down, và sau đó, sẽ ném ra một lỗi. intr: Cho phép người dùng gián đoạn trong quá trình chờ đợi trên một yêu cầu NFS. timeo = <num>: Để sử dụng với tùy chọn soft. Chỉ định thời gian chờ cho một yêu cầu NFS. nolock: Vô hiệu hóa tập tin lock. Hữu ích với các máy chủ NFS cũ. noexec: Vô hiệu hóa việc thực thi của mã nhị phân hoặc các script về một chia sẻ NFS. nosuid: Ngăn chặn người dùng từ đạt được quyền sở hữu của các tập tin trên chia sẻ NFS. rsize = <num>: Thiết lập kích thước đọc khối dữ liệu. Mặc định là 8192 trên NFSv2 và NFSv3, và 32768 trên NFSv4. wsize = <num>: Thiết lập kích thước ghi khối dữ liệu. Mặc định là 8192 trên NFSv2 và NFSv3, và 32768 trên NFSv4. Các tùy chọn cho Server Các tùy chọn này có thể được thêm trong tập tin /etc/exports: rw: đọc/ghi hệ thống tập tin. ro: Bắt buộc client kết nối trong chế độ chỉ được đọc hệ thống tập tin. no_root_squash: tài khoản root trên máy client sẽ có mức độ đặc quyền giống như là root trên máy chủ. Tùy chọn này có ý nghĩa an ninh; không sử dụng trừ khi bạn chắc chắn bạn cần nó. no_subtree_check : không kiểm tra thư mục con sẽ giúp tăng tốc độ truyền dữ liệu. sync : Buộc tất cả các hoạt động trong chế độ đồng bộ, vì vậy tất cả các client sẽ đợi cho đến khi các hoạt động của họ đang thực sự thực hiện. Điều này có thể tránh dữ liệu hư hỏng trong trường hợp của một vụ crash server.