# Gắn kết Hệ thống Tệp (Linux)

## NFS

### Bước 1: Cài đặt NFS Client

1. Trước khi cài đặt NFS client, vui lòng xác nhận rằng bạn đang sử dụng phiên bản kernel được khuyến nghị theo thông tin trong phần [Lỗi kernel của NFS client trên Linux](/docs/ufs/faq#linux-nfs-client-kernel-defect), nếu không máy chủ có thể gặp tình trạng treo IO.

    Nếu là máy chủ CentOS, hãy thực thi lệnh sau để cài đặt NFS client:

        sudo yum install nfs-utils

    Nếu là máy chủ Ubuntu, hãy thực thi lệnh sau để cài đặt NFS client:

        sudo apt-get install nfs-common

2. Theo mặc định, NFS client giới hạn số lượng yêu cầu NFS đồng thời mà nó có thể khởi tạo, với giới hạn mặc định là 2 yêu cầu đồng thời. Điều này ảnh hưởng đáng kể đến hiệu suất. Bạn có thể tham khảo [làm thế nào để sửa đổi số lượng yêu cầu NFS đồng thời?](/docs/ufs/faq#how-to-modify-nfs-concurrent-request-number?) để sửa đổi nhằm nâng cao hiệu suất.

### Bước 2: Gắn kết Hệ thống Tệp
1. Thực hiện theo thông tin điểm gắn kết (mount point) được hiển thị trong thao tác "Quản lý Điểm Gắn kết". Ví dụ sau đây minh họa quá trình gắn kết bằng cách sử dụng hệ thống tệp có ID ufs-dh6tds, giả định IP điểm gắn kết của nó là 10.8.0.1 (thay thế các tham số ví dụ bằng ID hệ thống tệp thực tế và IP điểm gắn kết của bạn trong quá trình thực hiện).

    Đối với giao thức NFSv3, hãy chạy lệnh sau để gắn kết:

        sudo mount -t nfs -o rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,nfsvers=3,proto=tcp,mountproto=tcp,nolock,noacl 10.8.0.1:/ /mnt

    Đối với giao thức NFSv4, hãy chạy lệnh sau để gắn kết:

        sudo mount -t nfs -o rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 10.8.0.1:/ /mnt

#### Ý nghĩa của các tham số khác nhau trong lệnh gắn kết như sau:

|Tên Tham số/Tùy chọn |Mô tả |
|---------|-----------------------------------------------------------------|
|Điểm Gắn kết (Mount Point) |Điểm truy cập để vào hệ thống tệp. Điểm gắn kết FS được đại diện bằng một địa chỉ IPv4. |
|rsize, wsize |Được sử dụng để chỉ định kích thước khối dữ liệu khi tương tác với máy chủ lưu trữ tệp (tính bằng Byte). Khuyến nghị đặt là 1048576. |
|hard |Nó hướng dẫn NFS client tiếp tục thử lại các thao tác với bộ lưu trữ tệp từ xa khi bộ lưu trữ tạm thời không khả dụng, thay vì trả về lỗi cho ứng dụng lớp trên. Khuyến nghị bật tùy chọn này, nó có thể tăng cường khả năng chịu lỗi của các tác vụ chạy lâu dài và các thao tác gián đoạn có chi phí cao đối với các sự cố tạm thời trên mạng và các khía cạnh khác. |
|timeo |Thời gian NFS client chờ trước khi thử lại yêu cầu tới bộ lưu trữ tệp từ xa, tính bằng đơn vị 0,1 giây. Khuyến nghị đặt giá trị là 600. |
|retrans |Số lần thử lại một yêu cầu của NFS client. Khuyến nghị đặt giá trị này là 2. |
|noresvport |Sử dụng một cổng mới khi kết nối lại do gián đoạn mạng, điều này có thể làm giảm xác suất thất bại khi kết nối lại. Khuyến nghị nên bật tùy chọn này. |

### Bước 3: Xem Kết quả Gắn kết
1. Sau khi thực thi lệnh gắn kết, bạn có thể chạy mount -l hoặc nfsstat -m để liệt kê các hệ thống tệp hiện đang được gắn kết. Nếu hệ thống tệp đích có trong danh sách, việc gắn kết đã thành công.

### Bước 4: Thiết lập Tự động Gắn kết
1. Chúng ta có thể thực hiện tự động gắn kết hệ thống tệp NFS bằng cách cấu hình tệp /etc/fstab trong hệ thống Linux.
    Tự động gắn kết giao thức v4

        10.8.0.1:/ /mnt nfs rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0

    Tự động gắn kết giao thức v3

        10.8.0.1:/ /mnt nfs rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,nfsvers=3,proto=tcp,mountproto=tcp,nolock,noacl,_netdev,noresvport 0 0

#### Ý nghĩa của các tham số khác nhau trong lệnh như sau:
|Tên Tham số/Tùy chọn |Mô tả |
|---------|-----------------------------------------------------------------|
|_netdev |Chỉ ra rằng hệ thống tệp cần gắn kết là một hệ thống tệp mạng, để ngăn chặn thao tác gắn kết trước khi mạng sẵn sàng, điều này có thể khiến máy chủ bị treo khi khởi động. |
|0 (mục đầu tiên sau noresvport) |Nếu giá trị khác 0, nó cho biết hệ thống tệp nên được sao lưu bằng dump. Đối với dịch vụ NAS, mục này là 0. |
|0 (mục thứ hai sau noresvport) |Cho biết có thực hiện thao tác fsck sau khi khởi động hay không. Vì sản phẩm FS đảm bảo tính nhất quán và lưu trữ dữ liệu lâu dài từ phía máy chủ, nên không cần thiết phải bật tùy chọn này. |


## SMB

### Bước 1: Cài đặt CIFS Client

1. Trước khi cài đặt CIFS client, vui lòng xác nhận rằng bạn đang sử dụng phiên bản kernel được khuyến nghị theo thông tin trong phần [Lỗi kernel của CIFS client trên Linux](/docs/ufs/faq#linux-smb-client-kernel-defect), nếu không máy chủ có thể gặp tình trạng treo IO.

    Nếu là máy chủ CentOS, hãy thực thi lệnh sau để cài đặt CIFS client:

        sudo yum install cifs-utils

    Nếu là máy chủ Ubuntu, hãy thực thi lệnh sau để cài đặt CIFS client:

        sudo apt-get install cifs-utils

### Bước 2: Gắn kết Hệ thống Tệp
1. Thực hiện theo thông tin điểm gắn kết được hiển thị trong thao tác "Quản lý Điểm Gắn kết". Ví dụ sau đây minh họa quá trình gắn kết bằng cách sử dụng hệ thống tệp có ID ufs-dh6tds, giả định IP điểm gắn kết của nó là 10.8.0.1 (thay thế các tham số ví dụ bằng ID hệ thống tệp thực tế và IP điểm gắn kết của bạn trong quá trình thực hiện).

        sudo mount -t cifs  -o guest,uid=0,gid=0,rsize=1048576,wsize=1048576 //10.8.0.1/share /mnt

#### Ý nghĩa của các tham số khác nhau trong lệnh gắn kết như sau:

|Tên Tham số/Tùy chọn |Mô tả |
|---------|-----------------------------------------------------------------|
|guest |Chỉ hỗ trợ gắn kết client dựa trên giao thức xác thực NTLM. |
|rsize,wsize	|	Được sử dụng để chỉ định kích thước của các khối dữ liệu (tính bằng byte) khi tương tác với máy chủ lưu trữ tệp. Khuyến nghị đặt chúng thành 1048576. |
|uid	|	Người dùng sở hữu các tệp sau khi gắn kết thành công. Nếu uid không được thiết lập, mặc định là uid=0. |
|gid	|Nhóm người dùng sở hữu các tệp sau khi gắn kết thành công. Nếu gid không được thiết lập, mặc định là gid=0. |

### Bước 3: Xem Kết quả Gắn kết
1. Sau khi thực thi lệnh gắn kết, bạn có thể chạy mount -l để liệt kê các hệ thống tệp hiện đang được gắn kết. Nếu hệ thống tệp đích có trong danh sách, việc gắn kết đã thành công.

### Bước 4: Thiết lập Tự động Gắn kết
1. Bạn có thể cấu hình tệp /etc/fstab trong hệ thống Linux để kích hoạt tính năng tự động gắn kết hệ thống tệp SMB.

        //10.8.0.1/share /mnt cifs guest,uid=0,gid=0,rsize=1048576,wsize=1048576 0 0

<br/>