Cách cấu hình máy chủ NFS và gắn kết chia sẻ NFS trên Ubuntu 18.04

theanh

Administrator
Nhân viên
Hệ thống tệp mạng (NFS) là một giao thức hệ thống tệp phân tán phổ biến cho phép người dùng gắn các thư mục từ xa trên máy chủ của họ. Hệ thống cho phép bạn tận dụng không gian lưu trữ ở một vị trí khác và ghi vào cùng một không gian từ nhiều máy chủ một cách dễ dàng. Do đó, nó hoạt động khá tốt đối với các thư mục mà người dùng cần truy cập thường xuyên. Hướng dẫn này giải thích quy trình gắn kết chia sẻ NFS trên máy chủ Ubuntu 18.04 theo các bước đơn giản và dễ làm theo.

Thông tin sơ bộ​

Đối với mục đích của hướng dẫn này, sẽ có một cấu hình chia sẻ thư mục giữa hai máy chủ Ubuntu 18.04, có thể có bất kỳ kích thước nào. Tuy nhiên, đối với mỗi máy chủ này, bạn sẽ cần một tài khoản đã được thiết lập với các đặc quyền sudo. Máy chủ sẽ chia sẻ các thư mục của mình sẽ được gọi là máy chủ, trong khi máy chủ sẽ gắn các thư mục này sẽ được gọi là máy khách. 3. Vì mục đích thống nhất và đơn giản, các địa chỉ IP sau đây sẽ được sử dụng để tham chiếu đến các giá trị máy chủ và máy chủ trong suốt hướng dẫn:
  • Máy chủ:192.168.0.100
  • Máy khách:192.168.0.101
Người dùng phải thay thế các giá trị đã đề cập ở trên bằng các giá trị máy chủ và máy khách riêng biệt của họ. Bây giờ chúng ta đã sẵn sàng tìm hiểu các bước để gắn kết chia sẻ NFS trên Ubuntu 18.04 LTS.

Tải xuống và cài đặt các thành phần​

Trước tiên, điều cần thiết là phải cài đặt các thành phần cần thiết trên cả máy chủ lưu trữ và máy khách. Riêng trên máy chủ lưu trữ, bạn sẽ được yêu cầu cài đặt gói nfs-kernel-server, cho phép bạn chia sẻ các thư mục của mình. Vì đây là bước đầu tiên bạn sẽ thực hiện với apt trong phiên này, bạn phải bắt đầu bằng cách làm mới chỉ mục gói cục bộ trước khi cài đặt (như được đưa ra bên dưới):
Mã:
sudo apt-get update
sudo apt-get install nfs-kernel-server
Sau khi cài đặt các gói này, bạn có thể chuyển sang máy khách. Trên máy tính khách hàng, bạn sẽ được yêu cầu cài đặt một gói có tên là nfs-common, cung cấp chức năng NFS mà không cần bao gồm các thành phần máy chủ. Ở đây một lần nữa, bạn cần làm mới chỉ mục gói cục bộ trước khi cài đặt để đảm bảo rằng bạn đã cập nhật thông tin (như được hiển thị bên dưới):
Mã:
sudo apt-get update
sudo apt-get install nfs-common
Điều này đưa bạn đến cuối bước này và bây giờ bạn có thể chuyển sang bước tiếp theo.

Tạo Thư mục Chia sẻ trên Máy chủ Lưu trữ​

Đối với mục đích của hướng dẫn này, sẽ có một thử nghiệm liên quan đến việc chia sẻ hai thư mục riêng biệt. Thư mục đầu tiên để chia sẻ tình cờ là thư mục /home chứa dữ liệu người dùng. Thư mục thứ hai sẽ là thư mục mục đích chung sẽ được tạo riêng cho NFS để chứng minh các thiết lập và quy trình phù hợp. Thư mục tương tự sẽ nằm tại /var/nfs Vì thư mục /home đã tồn tại, chúng ta hãy tiếp tục và bắt đầu bằng cách tạo /var/nfsdirectory, bằng lệnh sau:
Mã:
sudo mkdir /var/nfs
Bây giờ chúng ta có một thư mục mới được chỉ định rõ ràng để chia sẻ với các máy chủ từ xa. Tuy nhiên, quyền sở hữu thư mục này vẫn chưa lý tưởng. Chúng ta phải chỉ định quyền sở hữu người dùng cho một người dùng trên hệ thống của chúng ta có tên là nobody. Chúng ta cũng phải chỉ định quyền sở hữu nhóm cho một nhóm trên hệ thống có tên là nogroup. Điều này có thể được thực hiện bằng cách nhập lệnh sau:
Mã:
sudo chownnobody:nogroup /var/nfs
Điều quan trọng cần lưu ý ở đây là chúng ta phải cẩn thận thay đổi quyền sở hữu chỉ trên những thư mục được sử dụng cụ thể để chia sẻ. Ví dụ, quyền sở hữu thư mục home (/home directory) không được thay đổi vì nó sẽ gây ra nhiều vấn đề cho người dùng hiện diện trên máy chủ lưu trữ.

Cấu hình Xuất NFS trên Máy chủ lưu trữ​

Sau khi tạo và chỉ định các thư mục, giờ chúng ta có thể bắt đầu vào tệp cấu hình NFS để thiết lập việc chia sẻ các tài nguyên này. Để thực hiện, bạn phải mở tệp /etc/exports trong trình soạn thảo văn bản với quyền root bằng lệnh sau:
Mã:
sudo nano /etc/exports
Các tệp sẽ xuất hiện sẽ chứa một vài bình luận để thông báo cho bạn về cấu trúc chung của từng dòng cấu hình. Về cơ bản, cú pháp sẽ tương tự như sau:
Mã:
client_to_share (share_option2,...,share_optionM)
Mục đích ở đây là có thể tạo một dòng cho mỗi thư mục cần chia sẻ. Vì trong ví dụ đã chọn, IP là 192.168.0.100, nên các dòng sẽ trông giống như sau:
Mã:
/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs192.168.0.101(rw,sync,no_subtree_check)
Bây giờ chúng ta hãy dành một chút thời gian để hiểu các tùy chọn được đưa ra trong các dòng trên.
  • rw: Tùy chọn này cho phép máy tính khách hàng đọc cũng như ghi vào ổ đĩa.
  • sync: Tùy chọn này buộc NFS ghi các thay đổi vào đĩa trước khi trả lời, do đó tạo ra môi trường ổn định và nhất quán hơn. Nguyên nhân chính là do phản hồi sao chép trạng thái thực tế của ổ đĩa từ xa.
  • nosubtreecheck: Tùy chọn này ngăn chặn kiểm tra cây con, đây là quy trình buộc máy chủ phải kiểm tra xem tệp có thực sự vẫn khả dụng trong cây đã xuất cho mỗi yêu cầu hay không. Nó có thể tạo ra sự cố khi đổi tên tệp trong khi máy khách đã mở tệp đó. Vì lý do tương tự, trong hầu hết mọi trường hợp, bạn nên tắt kiểm tra cây con.
  • norootsquash: Theo mặc định, NFS dịch các yêu cầu từ người dùng root từ xa thành yêu cầu không có đặc quyền trên máy chủ. Đây được coi là tính năng bảo mật không cho phép tài khoản root trên máy khách sử dụng hệ thống tệp của máy chủ dưới dạng root. Loại chỉ thị này vô hiệu hóa tính năng này đối với một số lượng chia sẻ nhất định.
Sau khi thực hiện tất cả các thay đổi cần thiết, theo dự đoán, bạn phải thực hiện các thay đổi và lưu các thay đổi này trước khi đóng tệp. Sau đó, bạn phải tạo bảng NFS lưu trữ các bản xuất chia sẻ của mình bằng lệnh sau:
Mã:
sudo exportfs -a
Tuy nhiên, dịch vụ NFS vẫn chưa chạy. Bạn có thể bắt đầu dịch vụ này bằng cách nhập lệnh sau:
Mã:
sudo service nfs-kernel-server start
Lệnh trên sẽ giúp các chia sẻ của bạn khả dụng với các máy khách mà bạn đã định cấu hình. Bây giờ, bạn đã sẵn sàng chuyển sang bước tiếp theo.

Tạo Điểm gắn kết và Gắn kết Chia sẻ từ xa trên Máy chủ máy khách​

Sau khi máy chủ lưu trữ được định cấu hình và tạo các chia sẻ thư mục khả dụng, giờ đây bạn cần chuẩn bị cho máy khách của mình. Tại đây, bạn sẽ được yêu cầu gắn kết các chia sẻ từ xa, do đó, bạn cần tạo một vài điểm gắn kết. Bạn sẽ sử dụng /mnt thông thường để bắt đầu, sau đó tạo một thư mục có tên NFS bên dưới nó để hợp nhất các chia sẻ. Ở đây, các thư mục thực tế sẽ tương ứng với vị trí của chúng trên máy chủ lưu trữ. Người dùng có thể tạo từng thư mục và các thư mục cha cần thiết bằng cách sử dụng lệnh sau:
Mã:
sudo mkdir -p /mnt/nfs/home
sudo mkdir -p /mnt/nfs/var/nfs
Sau khi tạo một nơi thích hợp để lưu trữ các chia sẻ từ xa, giờ đây bạn có thể gắn kết chúng bằng cách giải quyết vấn đề với máy chủ lưu trữ, đối với mục đích của hướng dẫn này là 5.6.7.8, như được hiển thị bên dưới:
Mã:
sudo mount 192.168.0.100:/home /mnt/nfs/home
sudo mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
Những lệnh này sẽ cho phép bạn gắn kết các chia sẻ từ máy chủ lưu trữ vào máy khách. Bạn có thể kiểm tra lại điều này bằng cách xem dung lượng đĩa khả dụng trên máy chủ của khách hàng (như được cung cấp bên dưới):
Mã:
df -h
Kích thước hệ thống tệp đã sử dụng Có sẵn Sử dụng% Đã gắn kết trên/dev/vda 59G 1,3G 55G 3% /none 4,0K 0 4,0K 0% /sys/fs/cgroupudev 2,0G 12K 2,0G 1% /devtmpfs 396M 324K 396M 1% /runnone 5,0M 0 5,0M 0% /run/locknone 2,0G 0 2,0G 0% /run/shmnone 100M 0 100M 0% /run/user192.168.0.100:/home 59G 1,3G 55G 3% /mnt/nfs/home
Như đã thấy ở phía dưới, chỉ có một trong những chia sẻ dự định được hiển thị vì cả hai chia sẻ đã xuất đều tồn tại trên cùng một hệ thống tệp trên máy chủ từ xa, nghĩa là chúng chia sẻ cùng một nhóm lưu trữ. Để các cột AvailUse% chính xác, chỉ có thể thêm một trong những chia sẻ vào phép tính. Tuy nhiên, nếu bạn muốn xem tất cả các chia sẻ NFS mà bạn đã gắn kết, bạn có thể nhập lệnh sau:
Mã:
mount -t nfs
Lệnh trên sẽ đưa ra toàn bộ các gắn kết NFS hiện có thể truy cập được trên máy khách, đưa bạn đến cuối bước này và bây giờ là lúc chuyển sang bước tiếp theo.

Kiểm tra quyền truy cập NFS​

Bạn có thể kiểm tra quyền truy cập chia sẻ bằng cách ghi một cái gì đó vào các chia sẻ của mình, ví dụ, một tệp kiểm tra vào một trong các chia sẻ của bạn (như được hiển thị bên dưới):
Mã:
sudo touch /mnt/nfs/home/test_home
Tại đây, chúng ta cũng sẽ ghi tệp kiểm tra vào chia sẻ khác để chứng minh một sự khác biệt quan trọng:
Mã:
sudo touch /mnt/nfs/var/nfs/test_var_nfs
Vui lòng xem xét kỹ quyền sở hữu của tệp trong thư mục gốc được gắn kết (như được hiển thị bên dưới) để hiểu sự khác biệt:
Mã:
ls -l /mnt/nfs/home/test_home-rw-r--r-- 1 root root 0 10 tháng 4 09:15 test_home
Rõ ràng là tệp thuộc sở hữu của root, lý do là bạn đã hủy kích hoạt tùy chọn root_squash trên lần gắn kết này, tùy chọn này sẽ ghi tệp dưới dạng người dùng không xác định, không phải root. Trên tệp thử nghiệm khác, được gắn kết với root_squash được bật, bạn sẽ nhận thấy một điều hoàn toàn khác (như giải thích bên dưới):
Mã:
ls -l /mnt/nfs/var/nfs/test_var_nfs-rw-r--r-- 1 nobody nogroup 0 10 tháng 4 09:15 test_var_nfs
Rõ ràng, tệp này đã được gán cho người dùng nobody và nhóm nogroup. Do đó, điều này tuân thủ theo cấu hình được cài đặt trước. Bây giờ chúng ta hãy chuyển sang bước tiếp theo.

Tự động gắn kết thư mục NFS từ xa​

Bạn có thể tùy chọn tự động gắn kết các chia sẻ NFS từ xa bằng cách thêm tùy chọn này vào tệp fstabtrên máy khách. Bạn cần mở tệp này bằng quyền root trong trình soạn thảo văn bản của mình bằng cách sử dụng lệnh sau:
Mã:
sudo nano /etc/fstab
Ngay ở cuối tệp, bạn cần thêm một dòng cho mỗi chia sẻ, trông giống như bên dưới:
Mã:
192.168.0.100:/home /mnt/nfs/home nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs auto,noatime,nolock,bg,nfsvers=4,sec=krb5p,intr,tcp,actimeo=1800 0 0
Các tùy chọn được chỉ định ở đây có thể được tìm thấy trong trang hướng dẫn mô tả việc gắn kết NFS trong tệp fstab, bằng cách sử dụng lệnh sau:
Mã:
man nfs
Điều này sẽ cho phép bạn tự động gắn kết các phân vùng từ xa khi khởi động. Có thể mất một thời gian để kết nối được thực hiện và các chia sẻ khả dụng (kiên nhẫn sẽ là một đức tính ở đây!!)

Gỡ gắn kết Chia sẻ từ xa NFS​

Nếu bạn không yêu cầu thư mục từ xa được gắn kết trên hệ thống của mình nữa, bạn có thể dễ dàng gỡ gắn kết bằng cách di chuyển ra khỏi cấu trúc thư mục của chia sẻ và gỡ gắn kết, bằng cách sử dụng lệnh sau:
Mã:
cd ~
sudo umount /mnt/nfs/home
sudo umount /mnt/nfs/var/nfs
Điều này sẽ cho phép bạn xóa các chia sẻ từ xa, chỉ hiển thị bộ nhớ cục bộ của bạn có thể truy cập được:
Mã:
df -hKích thước hệ thống tệp đã sử dụng Có sẵn Sử dụng% Đã gắn kết trên/dev/vda 59G 1,3G 55G 3% /none 4,0K 0 4,0K 0% /sys/fs/cgroupudev 2.0G 12K 2.0G 1% /devtmpfs 396M 320K 396M 1% /runnone 5.0M 0 5.0M 0% /run/locknone 2.0G 0 2.0G 0% /run/shmnone 100M 0 100M 0% /run/user
Như đã rõ, các chia sẻ NFS hiện không khả dụng dưới dạng không gian lưu trữ. Điều này đưa bạn đến phần cuối của hướng dẫn.

Kết luận​

NFS cung cấp một cơ chế đơn giản và nhanh chóng để truy cập các hệ thống từ xa qua mạng. Tuy nhiên, giao thức này không được mã hóa. Nếu bạn định sử dụng giao thức này trong môi trường sản xuất, bạn nên cân nhắc định tuyến NFS qua SSH hoặc kết nối VPN để tạo ra trải nghiệm an toàn hơn nhiều.
 
Back
Bên trên