Ghichep-nfs/NDChien_Baocao_ At Master - GitHub
Có thể bạn quan tâm
- Notifications You must be signed in to change notification settings
- Fork 6
- Star 1
- Code
- Issues 1
- Pull requests 0
- Actions
- Projects 0
- Security
- Insights
Files
masterBreadcrumbs
- ghichep-nfs
Latest commit
History
History221 lines (160 loc) · 11.1 KB masterBreadcrumbs
- ghichep-nfs
File metadata and controls
- Preview
- Code
- Blame
#Tìm hiểu NFS (Network File System) ##Mục lục:
1 Giới thiệu
2 NFS server
- 2.1 File cấu hình, dịch vụ
- 2.2 Các dịch vụ có liên quan
- 2.3 Xác minh các dịch vụ của NFS đang chạy
- 2.4 Cập nhật thay đổi cho /etc/exports
- 2.5 Chức năng mount tự động khi boot
- 2.6 Các trường hợp dùng NFS
3 Demo NFS
###1 Giới thiệu
- NFS là hệ thống cung cấp dịch vụ chia sẻ file phổ biến trong hệ thống mạng Linux và Unix.
- NFS cho phép các máy tính kết nối tới 1 phân vùng đĩa trên 1 máy từ xa giống như là local disk. Cho phép việc truyền file qua mạng được nhanh và trơn tru hơn.
- NFS sử dụng mô hình Client/Server. Trên server có các disk chứa các file hệ thống được chia sẻ và một số dịnh vụ chạy ngầm (daemon) phục vụ cho việc chia sẻ với Client.
- Cung cấp chức năng bảo mật file và quản lý lưu lượng sử dụng (file system quota).
- Các Client muốn sử dụng các file system được chia sẻ thì sử dụng giao thức NFS để mount các file đó về.
- Khi triển khai hệ thống lớn hoặc chuyên biệt cần áp dụng 3NFS, còn người dùng ngẫu nhiên hoặc nhỏ lẻ thì áp dụng 2NFS, 4NFS.
- Với NFSv4, yêu cầu hệ thống phải có kernel phiên bản từ 2.6 trở lên
- Xử lý được những file lớn hơn 2GB, đòi hỏi hệ thống phải có phiên bản kernel lớn hơn hoặc bằng 2.4x và glibc từ 2.2.x trở lên
- Client từ phiên bản kernel 2.2.18 trở đi đều hỗ trợ NFS trên nền TCP
###2 NFS server
####2.1 File cấu hình, dịch vụ
Có ba tập tin cấu hình chính, bạn sẽ cần phải chỉnh sửa để thiết lập một máy chủ NFS: /etc/exports, /etc/hosts.allow và /etc/hosts.deny
2.1.1 File /etc/export
dir host1(options) host2(options) hostN(options) …
- dir : thư mục hoặc file system muốn chia sẻ.
- host : một hoặc nhiều host được cho phép mount dir. Có thể được định nghĩa là một tên, một nhóm sử dụng ký tự , * hoặc một nhóm sử dụng 1 dải địa chỉ mạng/subnetmask...
- options : định nghĩa 1 hoặc nhiều options khi mount.
Các options:
- ro: thư mục được chia sẻ chỉ đọc được; client không thể ghi lên nó.
- rw: client có thể đọc và ghi trên thư mục.
- no_root_squash: Mặc định, bất kỳ file truy vấn được tạo bởi người dùng (root) máy trạm đều được xử lý tương tự nếu nó được tạo bởi user nobody. Nếu no_root_squash được chọn, user root trên client sẽ giống như root trên server.
- no_subtree_check: Nếu chỉ 1 phần của ổ đĩa được chia sẻ, 1 đoạn chương trình gọi là “thẩm tra lại việc kiểm tra cây con” được yêu cầu từ phía client (nó là 1 file n m trong phân vùng được chia sẻ). Nếu toàn bộ ổ đĩa được chia sẻ, việc vô hiệu hóa sự kiểm tra này sẽ tăng tốc độ truyền tải.
- sync: thông báo cho client biết 1 file đã được ghi xong- tức là nó đã được ghi để lưu trữ an toàn-khi mà NFS hoàn thành việc kiểm soát ghi lên các file hệ thống. cách xử lí này có thể là nguyên nhân làm sai lệch dữ liệu nếu server khởi động lại.
Ví dụ 1 file cấu hình mẫu
/usr/local *.123.vn(ro) /home 192.168.1.0/255.255.255.0(rw) /var/tmp 192.168.1.1(rw) 192.168.1.3(rw)- Dòng thứ nhất : Cho phép tất cả các host với tên miền định dạng “somehost”.123.vn được mount thư mục /usr/local với quyền chỉ đọc.
- Dòng thứ hai : Cho phép bất kỳ host nào có địa chỉ IP thuộc subnet 192.168.1.0/24 được mount thư mục /home với quyền đọc và ghi.
- Dòng thứ ba : Cho phép 2 host được mount thư mục /var/tmp với quyền đọc và ghi.
2.1.2 File /etc/hosts.allow và /etc/hosts.deny
Hai tập tin đặc biệt này giúp xác định các máy tính trên mạng có thể sử dụng các dịch vụ trên máy của bạn. Mỗi dòng trong nội dung file chứa duy nhất 1 danh sách gồm 1 dịch vụ và 1 nhóm các máy tính. Khi server nhận được yêu cầu từ client, các công việc sau sẽ được thực thi:
- Kiểm tra file host.allow – nếu client phù hợp với 1 quy tắc được liệt kê tại đây thì nó có quyền truy cập.
- Nếu client không phù hợp với 1 mục trong host.allow server chuyển sang kiểm tra trong host.deny để xem thử client có phù hợp với 1 quy tắc được liệt kê trong đó hay không (host.deny). Nếu phù hợp thì client bị từ chối truy cập.
- Nếu client phù hợp với các quy tắc không được liệt kê trong cả 2 file thì nó sẽ được quyền truy cập.
Ví dụ: Muốn chặn hoặc cho phép một host hoặc network thì thêm vào file deny hoặc allow.
portmap: 10.10.10.5, 10.10.10.0/24
####2.2 Các dịch vụ có liên quan
Để sử dụng dịch vụ NFS, cần có các daemon (dịch vụ chạy ngầm trên hệ thống) sau:
- **Portmap**: Quản lý các kết nối, dịch vụ chạy trên port 2049 và 111 ở cả server và client.
- **NFS**: Khởi động các tiến trình RPC (Remote Procedure Call) khi được yêu cầu để phục vụ cho chia sẻ file, dịch vụ chỉ chạy trên server.
- **NFS lock**: Sử dụng cho client khóa các file trên NFS server thông qua RPC.
2.2.1 Khởi động portmapper
NFS phụ thuộc vào tiến trình ngầm quản lý các kết nối (portmap hoặc rpc.portmap), chúng cần phải được khởi động trước.
Nó nên được đặt tại /sbin nhưng đôi khi trong /usr/sbin. Hầu hết các bản phân phối linux gần đây đều khởi động dịch vụ này trong „kịch bản khởi động‟ (boot scripts –tự khởi động khi server khởi động) nhưng vẩn phải đảm bảo nó được khởi động đầu tiên trước khi bạn làm việc với NFS (chỉ cần gõ lệnh netstat -anp |grep portmap để kiểm tra).
2.2.2 Các tiến trình ngầm
Dịch vụ NFS được hỗ trợ bởi 5 tiến trình ngầm:
- **rpc.nfsd**: thực hiện hầu hết mọi công việc.
- **rpc.lockd and rpc.statd**: quản lý việc khóa các file.
- **rpc.mountd**: quản lý các yêu cầu gắn kết lúc ban đầu.
- **rpc.rquotad**: quản lý các hạn mức truy cập file của người sử dụng trên server được truy xuất.
- **lockd**: được gọi theo yêu cầu của nfsd. Vì thế bạn cũng không cần quan tâm lắm tới việc khởi động nó.
- **statd**: thì cần phải được khởi động riêng.
Tuy nhiên trong các bản phân phối linux gần đây đều có kịch bản khởi động cho các tiến trình trên. Tất cả các tiến trình này đều nằm trong gói nfs-utils, nó có thể được lưu giữ trong /sbin hoặc /usr/sbin. Nếu bản phân phối của bạn không tích hợp chúng trong kịch bản khởi động, thì bạn nên tự thêm chúng vào, cấu hình theo thứ tự sau đây:
rpc.portmap rpc.mountd rpc.nfsd####2.3 Xác minh các dịch vụ của NFS đang chạy
Để làm điều này, ta truy vấn portmapper với lệnh *rpcinfo để tìm ra dịch vụ nào đang được cung cấp.
####2.4 Cập nhật thay đổi cho /etc/exports
- Nếu thay đổi trong /etc/exports, các thay đổi đó có thể chưa có hiệu lực ngay lập tức, bạn phải thực thi lệnh **exportfs -ra** để bắt nfst cập nhật lại nội dung file /etx/exports .
- Nếu không tìm thấy lệnh exportfs thì bạn có thể kết thúc nfsd với lệnh HUD.
- Nếu các việc đó không hoạt động, đừng quên kiểm tra lại hosts.allow để đảm bảo rằng bạn không quên việc khai báo danh sách các máy con trong đấy. Ngoài ra cũng nên kiểm tra danh sách các máy chủ trên bất kỳ hệ thống tường lửa nào mà bạn đã thiết lập.
####2.5 Chức năng mount tự động khi boot
Chỉnh sửa file fstab bên phía client. Để đảm bảo cho hoạt động nên dùng hard,intr cho nfs.
####2.6 Các trường hợp dùng NFS
- Ứng dụng hỗ trợ: VDI, Oracle, VMware ESXi, SAS Grid, SAP HANA, TIBCO, OpenStack, Docker, etc
- Các khách hàng lớn.
- Đơn giản, dễ quản lý.
- Không cần client OS file system.
- Dễ dàng mở rộng, thu hồi.
- Dễ dàng di chuyển các storage.
- Chạy trên Ethernet.
- Hiệu suất lớn, độ trễ thấp. Hiệu suất tốt hơn iSCSl trong vài trường hợp.
####Chú ý
- Có thể cấu hình tùy chọn kích thước gói dữ liệu để tối ưu khi truyền với options rsize và wsize
link tham khảo: http://blogit.edu.vn/toi-uu-he-thong-nfs/
-
Không đặt rsize và wsize lớn hơn MTU của mạng truyền.
-
Dùng nfsstat để có thêm thông tin về hoạt động của NFS.
-
Thay đổi port cho statd: statd -p 32765 -o 32766
-
Thay đổi port mountd: mountd -p 32767
-
Dùng ssh để đổi port hoạt động
NFS có 2 chế độ mount:
Mount cứng là ghi trực tiếp vào file /etc/fstab Mount mềm là mount bằng lệnh thông thường và bị mất khi máy tính được khởi động lạiTối ###3 Demo NFS
PC1: Ubuntu server 14.04- NFS server IP: 10.10.10.40
PC2: Ubuntu server 14.04- NFS client IP: 10.10.10.41
PC1:
- Cài đặt NFS server apt-get -y install nfs-kernel-server
- Chỉnh sửa file exportfs ví dụ cho phép mount thư mục /mnt/nfs tới dải 10.10.10.0/24 /mnt/nfs 10.10.10.0/24(rw,no_root_squash)
- Khởi động lại NFS /etc/init.d/nfs-kernel-server restart
PC2:
- Cài đặt NFS client apt-get -y install nfs-common
- Tạo thư mục /mnt/a và mount /mnt/nfs về thư mục vừa tạo mount 10.10.10.40:/mnt/nfs /mnt/a
- Dùng lệnh df -h để kiểm tra
Tham khảo:
[1]- http://nfs.sourceforge.net/nfs-howto/
You can’t perform that action at this time.Từ khóa » Tìm Hiểu Về Nfs
-
NFS Là Gì Và Các Cấu Hình Của NFS Trên NAS Synology
-
[NFS] Giới Thiệu Về Network File System - Trang Tin Tức Từ Cloud365
-
Chia Sẻ Tệp Trên Các Server Của Bạn Với NFS (Network File System)
-
NFS Là Gì? Cách Cấu Hình Network File System - Vietnix
-
Giới Thiệu Về NFS | Rừng Tự Nhiên ... - The Natural Forest Standard
-
Giới Thiệu Về NFS | Rừng Tự Nhiên ... - The Natural Forest Standard
-
NFS Là Gì – Network File System Dịch Vụ ...
-
NFS Là Gì – Network File System Dịch Vụ Chia Sẻ Tài ...
-
NFS (Network File System) Và NIS (Network Information Service)
-
NFS Là Gì – Network File System Dịch Vụ Chia Sẻ Tài Nguyên
-
NFS Là Gì – Network File System Dịch Vụ Chia Sẻ Tài Nguyên
-
Hướng Dẫn Cho Người Mới Bắt đầu Về NFS Trong CentOS / RHEL
-
Thiết Lập Máy Chủ NFS Trên Linux Image Thiết Lập Máy ...
-
Cài đặt Và Sử Dụng NFS Server Trên CentOS để Chia Sẻ ổ đĩa