Thứ tư, 30/04/2014 | 00:00 GMT+7

Cách thiết lập NFS Mount trên Ubuntu 14.04

NFS, hoặc Hệ thống file mạng, là một giao thức hệ thống file phân tán cho phép bạn gắn các folder từ xa trên server của bạn . Điều này cho phép bạn tận dụng không gian lưu trữ ở một vị trí khác và dễ dàng ghi vào cùng một không gian từ nhiều server . NFS hoạt động tốt cho các folder sẽ phải được truy cập thường xuyên.

Trong hướng dẫn này, ta sẽ trình bày cách cấu hình các giá đỡ NFS trên server Ubuntu 14.04.

Yêu cầu

Trong hướng dẫn này, ta sẽ cấu hình chia sẻ folder giữa hai server Ubuntu 14.04. Chúng có thể có kích thước bất kỳ. Đối với mỗi server này, bạn sẽ phải cài đặt một account với các quyền sudo. Bạn có thể tìm hiểu cách cấu hình một account như vậy theo các bước từ 1-4 trong hướng dẫn cài đặt ban đầu của ta cho server Ubuntu 14.04 .

Đối với mục đích của hướng dẫn này, ta sẽ đề cập đến server sẽ chia sẻ các folder của nó là server lưu trữ và server sẽ mount các folder này làm máy khách .

Để giữ những điều này thẳng thắn trong suốt hướng dẫn, tôi sẽ sử dụng các địa chỉ IP sau làm giá trị thay thế cho các giá trị server và server :

  • Server : 1.2.3.4
  • Khách hàng : 111.111.111.111

Bạn nên thay thế các giá trị trên bằng các giá trị server và client của bạn .

Download và cài đặt các thành phần

Trước khi có thể bắt đầu, ta cần cài đặt các thành phần cần thiết trên cả server lưu trữ và client của ta .

Trên server lưu trữ, ta cần cài đặt gói nfs-kernel-server , gói này sẽ cho phép ta chia sẻ các folder của bạn . Vì đây là thao tác đầu tiên mà ta thực hiện với apt trong phiên này, ta sẽ cập nhật OS local của bạn trước khi cài đặt:

sudo apt-get update sudo apt-get install nfs-kernel-server 

Sau khi các gói này được cài đặt, bạn có thể chuyển sang client .

Trên máy tính khách, ta sẽ phải cài đặt một gói có tên nfs-common , cung cấp chức năng NFS mà không cần phải bao gồm các thành phần server . , ta sẽ cập nhật OS local trước khi cài đặt đảm bảo rằng ta có thông tin cập nhật:

sudo apt-get update sudo apt-get install nfs-common 

Tạo folder chia sẻ trên server lưu trữ

Ta sẽ thử nghiệm với việc chia sẻ hai folder riêng biệt trong hướng dẫn này. Thư mục đầu tiên mà ta sẽ chia sẻ là folder /home chứa dữ liệu user .

Thứ hai là một folder mục đích chung mà ta sẽ tạo riêng cho NFS để ta có thể chứng minh các thủ tục và cài đặt thích hợp. Điều này sẽ được đặt tại /var/nfs .

Vì folder /home đã tồn tại, hãy tiếp tục và bắt đầu bằng cách tạo folder /var/nfs :

sudo mkdir /var/nfs 

Bây giờ, ta có một folder mới được chỉ định đặc biệt để chia sẻ với các server từ xa. Tuy nhiên, quyền sở hữu folder không phải là lý tưởng. Ta nên trao quyền sở hữu user cho một user trên hệ thống của ta , nobody tên. Ta cũng nên trao quyền sở hữu group cho một group trên hệ thống của ta có tên là nogroup .

Ta có thể làm điều đó bằng lệnh lệnh này:

sudo chown nobody:nogroup /var/nfs 

Ta chỉ cần thay đổi quyền sở hữu trên các folder của ta được sử dụng đặc biệt để chia sẻ. Chẳng hạn, ta sẽ không muốn thay đổi quyền sở hữu folder /home , vì nó sẽ gây ra rất nhiều vấn đề cho mọi user mà ta có trên server lưu trữ của bạn .

Cấu hình xuất NFS trên Server lưu trữ

Bây giờ ta đã tạo và gán các folder của bạn , ta có thể đi sâu vào file cấu hình NFS để cài đặt việc chia sẻ các tài nguyên này.

Mở file /etc/exports trong editor của bạn với quyền root:

sudo nano /etc/exports 

Các file mà bạn nhìn thấy sẽ có một số chú thích cho bạn thấy cấu trúc chung của từng dòng cấu hình. Về cơ bản, cú pháp giống như sau:

<pre>
<span class = “highlight”> folder để chia sẻ </span> <span class = “highlight”> client </span> (<span class = “highlight”> share option1 </span>, <span class = “highlight ”>… </span>, <span class =“ highlight ”> tùy chọn chia sẻN </span>)
</pre>

Vì vậy, ta muốn tạo một dòng cho mỗi folder mà ta muốn chia sẻ. Vì trong ví dụ này hoặc ứng dụng client có IP là 111.111.111.111 , các dòng của ta sẽ giống như sau:

<pre>
/ home <span class = “highlight”> 111.111.111.111 </span> (rw, đồng bộ hóa, không có bí mật gốc , không có kiểm tra cây con )
/ var / nfs <span class = “highlight”> 111.111.111.111 </span> (rw, đồng bộ hóa, không có kiểm tra cây con )
</pre>

Ta đã giải thích mọi thứ ở đây nhưng các tùy chọn cụ thể mà ta đã bật. Bây giờ ta hãy xem xét những điều đó.

  • rw : Tùy chọn này cung cấp cho máy tính khách quyền truy cập cả đọc và ghi vào ổ đĩa.
  • đồng bộ hóa : Tùy chọn này buộc NFS ghi các thay đổi vào đĩa trước khi trả lời. Điều này dẫn đến một môi trường ổn định và nhất quán hơn, vì câu trả lời phản ánh trạng thái thực tế của âm lượng từ xa.
  • không kiểm tra cây con : Tùy chọn này ngăn chặn việc kiểm tra cây con, là quá trình mà server lưu trữ phải kiểm tra xem file có thực sự còn trong cây được xuất cho mọi yêu cầu hay không. Điều này có thể gây ra nhiều vấn đề khi một file được đổi tên trong khi khách hàng đã mở nó. Trong hầu hết mọi trường hợp, tốt hơn hết là bạn nên tắt tính năng kiểm tra cây con.
  • không có bí gốc : Theo mặc định, NFS dịch các yêu cầu từ user root từ xa thành user không có quyền trên server . Đây được coi là một tính năng bảo mật bằng cách không cho phép một account root trên client sử dụng hệ thống file của server như là user root . Chỉ thị này vô hiệu hóa điều này đối với một số cổ phiếu nhất định.

Khi bạn thực hiện xong các thay đổi, hãy lưu file .

Tiếp theo, bạn nên tạo bảng NFS chứa các xuất khẩu chia sẻ của bạn bằng lệnh :

sudo exportfs -a 

Tuy nhiên, dịch vụ NFS vẫn chưa thực sự chạy. Bạn có thể bắt đầu bằng lệnh :

sudo service nfs-kernel-server start 

Điều này sẽ làm cho các chia sẻ của bạn có cho các khách hàng mà bạn đã cấu hình .

Tạo điểm mount và mount chia sẻ từ xa trên server khách hàng

Bây giờ server lưu trữ của bạn đã được cấu hình và cung cấp chia sẻ folder của nó, ta cần chuẩn bị cho client của bạn .

Ta sẽ phải mount các chia sẻ từ xa, vì vậy hãy tạo một số điểm mount . Ta sẽ sử dụng /mnt truyền thống làm điểm bắt đầu và tạo một folder có tên nfs dưới nó để giữ cho cổ phiếu của ta được hợp nhất.

Các folder thực tế sẽ tương ứng với vị trí của chúng trên server lưu trữ. Ta có thể tạo từng folder và các folder mẹ cần thiết, bằng lệnh sau:

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

Bây giờ ta đã có một số nơi để đặt các chia sẻ từ xa của bạn , ta có thể mount chúng bằng cách định địa chỉ server lưu trữ của ta , trong hướng dẫn này là 1.2.3.4 , như sau:

<pre>
sudo mount <span class = “highlight”> 1.2.3.4 </span>: / home / mnt / nfs / home
sudo mount <span class = “highlight”> 1.2.3.4 </span>: / var / nfs / mnt / nfs / var / nfs
</pre>

Chúng sẽ gắn các chia sẻ từ máy tính chủ của ta vào client của ta . Ta có thể kiểm tra kỹ điều này bằng cách xem dung lượng đĩa có sẵn trên server khách hàng của ta :

<pre>
df -h
</pre>
<pre>
Kích thước hệ thống file Đã sử dụng Tính sẵn có% Được gắn trên
/ dev / vda 59G 1.3G 55G 3% /
không 4.0K 0 4.0K 0% / sys / fs / cgroup
udev 2.0G 12K 2.0G 1% / nhà phát triển
tmpfs 396M 324K 396M 1% / lần chạy
không 5.0M 0 5.0M 0% / chạy / khóa
không 2.0G 0 2.0G 0% / run / shm
không 100 triệu 0 100 triệu 0% / lần chạy / user
<span class = “highlight”> 1.2.3.4:/home 59G 1.3G 55G 3% / mnt / nfs / home </span>
</pre>

Như bạn thấy ở phía dưới, chỉ một trong những chia sẻ của ta được hiển thị. Điều này là do cả hai chia sẻ mà ta đã xuất đều nằm trên cùng một hệ thống file trên server từ xa, nghĩa là chúng chia sẻ cùng một group lưu trữ. Để cho AvailUse% cột duy trì chính xác, chỉ có một phần có thể được thêm vào các tính toán.

Nếu bạn muốn xem tất cả các chia sẻ NFS mà bạn đã mount , có thể chạy lệnh:

<pre>
mount -t nfs
</pre>
<pre>
1.2.3.4:/home on / mnt / nfs / home type nfs (rw, vers = 4, addr = 1.2.3.4, clientaddr = 111.111.111.111)
1.2.3.4:/var/nfs on / mnt / nfs / var / nfs type nfs (rw, vers = 4, addr = 1.2.3.4, clientaddr = 111.111.111.111)
</pre>

Điều này sẽ hiển thị tất cả các ngàm NFS hiện có thể truy cập được trên client của bạn.

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

Bạn có thể kiểm tra quyền truy cập vào các chia sẻ của bạn bằng cách viết điều gì đó vào các chia sẻ của bạn. Bạn có thể viết một file thử nghiệm vào một trong những chia sẻ của bạn như sau:

sudo touch /mnt/nfs/home/test_home 

Hãy ghi file thử nghiệm vào phần chia sẻ khác để chứng minh sự khác biệt quan trọng:

sudo touch /mnt/nfs/var/nfs/test_var_nfs 

Xem quyền sở hữu của file trong folder chính được mount :

ls -l /mnt/nfs/home/test_home 

-rw-r--r-- 1 root   root      0 Apr 30 14:43 test_home 

Như bạn thấy , file được sở hữu bởi root. Điều này là do ta đã vô hiệu hóa tùy chọn root_squash trên mount này có thể đã ghi file dưới dạng user ẩn danh, không phải root.

Trên file thử nghiệm khác của ta , được mount với root_squash được bật, ta sẽ thấy một cái gì đó khác:

ls -l /mnt/nfs/var/nfs/test_var_nfs 

-rw-r--r-- 1 nobody nogroup 0 Apr 30 14:44 test_var_nfs 

Như bạn thấy , file này đã được gán cho user “không ai cả” và group “không group ”. Điều này tuân theo cấu hình của ta .

Tự động gắn folder NFS từ xa

Ta có thể tự động gắn các chia sẻ NFS từ xa của bạn bằng cách thêm nó vào file fstab trên client .

Mở file này với quyền root trong editor của bạn:

sudo nano /etc/fstab 

Ở cuối file , ta sẽ thêm một dòng cho mỗi chia sẻ của ta . Chúng sẽ trông như thế này:

<pre>
<span class = “highlight”> 1.2.3.4 </span>: / home / mnt / nfs / home nfs auto, noatime, nolock, bg, nfsvers = 4, intr, tcp, actimeo = 1800 0 0
<span class = “highlight”> 1.2.3.4 </span>: / var / nfs / mnt / nfs / var / nfs nfs auto, noatime, nolock, bg, nfsvers = 4, sec = krb5p, intr, tcp, actimeo = 1800 0 0
</pre>

Các tùy chọn mà ta đang chỉ định ở đây có thể được tìm thấy trong trang nam mô tả việc gắn NFS trong file fstab :

man nfs 

Thao tác này sẽ tự động mount các phân vùng từ xa khi khởi động (có thể mất vài phút để kết nối được thực hiện và chia sẻ khả dụng).

Ngắt kết nối Chia sẻ từ xa NFS

Nếu bạn không muốn mount folder từ xa trên hệ thống của bạn nữa, bạn có thể ngắt kết nối nó một cách dễ dàng bằng cách di chuyển ra khỏi cấu trúc folder của chia sẻ và ngắt kết nối, như sau:

cd ~ sudo umount /mnt/nfs/home sudo umount /mnt/nfs/var/nfs 

Điều này sẽ xóa các chia sẻ từ xa, chỉ để lại bộ nhớ local của bạn có thể truy cập được:

df -h 

Filesystem      Size  Used Avail Use% Mounted on /dev/vda         59G  1.3G   55G   3% / none            4.0K     0  4.0K   0% /sys/fs/cgroup udev            2.0G   12K  2.0G   1% /dev tmpfs           396M  320K  396M   1% /run none            5.0M     0  5.0M   0% /run/lock none            2.0G     0  2.0G   0% /run/shm none            100M     0  100M   0% /run/user 

Như bạn thấy , phần chia sẻ NFS của ta không còn khả dụng dưới dạng không gian lưu trữ.

Kết luận

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

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách cài đặt và cấu hình Postfix trên Ubuntu 14.04
2014-04-29
Cách cài đặt và cấu hình Postfix trên Ubuntu 14.04
2014-04-29
Cách thêm swap trên Ubuntu 14.04
2014-04-28
Cách cài đặt WordPress trên Ubuntu 14.04
2014-04-24
Cách cài đặt và bảo mật phpMyAdmin trên Ubuntu 14.04
2014-04-23
Cách cài đặt Solr trên Ubuntu 14.04
2014-04-23
Cách cài đặt Git trên Ubuntu 14.04
2014-04-23
Cách thêm và xóa người dùng trên VPS Ubuntu 14.04
2014-04-22
Cách cài đặt và cấu hình Slim Framework trên Ubuntu 14.04
2014-04-22
Cách cài đặt Ruby on Rails trên Ubuntu 14.04 bằng RVM
2014-04-22