MỞ ĐẦU Cùng với sự phát triển của các mạng máy tính, việc quản lý, lưu trữ và xử lý thông tin ngày nay không chỉ được thực hiện trong từng máy tính đơn lẻ như trước.. Hệ thống file phân
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
NGUYỄN TUẤN ANH
NGHIÊN CỨU HỆ THỐNG FILE PHÂN TÁN
VÀ ỨNG DỤNG TẠI CÔNG TY THÍ NGHIỆM
ĐIỆN MIỀN TRUNG
Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.01.04
TÓM TẮT LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
Đà Nẵng - Năm 2016
Trang 2Công trình được hoàn thành tại ĐẠI HỌC ĐÀ NẴNG
Người hướng dẫn khoa học: PGS.TS Lê Văn Sơn
Phản biện 1: TS Huỳnh Công Pháp
Phản biện 2: TS Vũ Thị Trà
Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ kỹ thuật họp tại Đại học Sư phạm, ĐHĐN vào ngày
7 tháng 1 năm 2017
Có thể tìm hiểu luận văn tại:
- Trung tâm Thông tin - Học liệu, Đại học Đà nẵng
- Thư viện trường Đại học Sư phạm, Đại học Đà Nẵng
Trang 3MỞ ĐẦU
Cùng với sự phát triển của các mạng máy tính, việc quản lý, lưu trữ và xử lý thông tin ngày nay không chỉ được thực hiện trong từng máy tính đơn lẻ như trước Các hệ thống thông tin cần được xây dựng từ các máy tính kết nối với nhau qua mạng tốc độ cao Hệ thống file phân tán (Distributed File System) là hệ thống quản lý và lưu trữ các file được xây dựng trên cơ sở mạng máy tính, trong đó các file được quản lý và lưu trữ trên nhiều máy tính trên mạng Hệ thống file phân tán có những ưu điểm vượt trội so với hệ thống file tập trung (hệ thống file trên 1 máy tính), như dung lượng lưu trữ lớn,
độ tin cậy cao, khả năng chịu lỗi cao, hỗ trợ tốc độ truy cập cao cho nhiều người dùng đồng thời Tuy có nhiều ưu điểm vượt trội, nhưng
do chi phí lắp đặt và vận hành còn tương đối cao, nên các thống file phân tán chưa được sử dụng rộng rãi trong các doanh nghiệp và tổ chức có quy mô vừa và nhỏ.Trong điều kiện hạ tầng công nghệ thông tin còn yếu ở Việt Nam, hầu hết các doanh nghiệp và tổ chức có quy
mô vừa và nhỏ đều sử dụng một hoặc một số máy chủ riêng rẽ để quản lý và lưu trữ thông tin Phương pháp này có ưu điểm là chi phí thấp, nhưng không đảm bảo dung lượng, tính tin cậy và tốc độ truy nhập cho nhiều người dùng
Bên cạnh đó việc ứng dụng các mô hình quản lý file, dữ liệu tại Công ty thí nghiệm điện Miền Trung chưa đáp ứng được nhu cầu công việc cũng như các yêu cầu đề ra của lãnh đạo công ty, hiện nay công ty vẫn còn sử dụng các phương thức quản lý file theo kiểu tập
Trang 4trung, điều này làm cho việc quản lý file cũng như dữ liệu gặp rất nhiều khó khăn làm ảnh hưởng rất lớn đến hiệu quả công việc tại các
bộ phận khác của Công ty
Do vậy, việc nghiên cứu sâu về hệ thống file phân tán và ứng dụng hiệu quả vào các doanh nghiệp và tổ chức có quy mô vừa và nhỏ, đặc biệt là ứng dụng thực tế vào công ty là yêu cầu thực tế cấp thiết
Đây cũng là lý do tôi chọn đề tài: "Nghiên cứu hệ thống file
phân tán và ứng dụng tại Công ty thí nghiệm Điện Miền Trung"
3 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Một số hệ thống file phân tán điển hình
- Phạm vi nghiên cứu: Nghiên cứu hệ thống file phân tán
và ứng dụng thực tế
Trang 54 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết với thực nghiệm và phân tích, đánh giá kết quả
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG FILE PHÂN TÁN
1.1 KHÁI NIỆM VỀ HỆ THỐNG FILE VÀ HỆ THỐNG FILE PHÂN TÁN
1.1.1 Khái niệm về hệ thống file
Hệ thống file (File System) là một phương pháp tổ chức lưu trữ các file và dữ liệu của chúng, thường được thực hiện bởi hệ điều hành Hệ thống file cho phép người sử dụng dễ dàng tìm kiếm
và truy nhập các file
1.1.2 Khái niệm về hệ thống file phân tán
Hệ thống file phân tán (Distributed File System - DFS) là một hệ thống file hỗ trợ chia sẻ files và các tài nguyên trên mạng
1.2 LỊCH SỬ PHÁT TRIỂN
Một số mốc phát triển của các hệ thống file phân tán:
- 1980s: Chia sẻ file dùng đĩa mềm (copy – vận chuyển – copy)
-1980s: Chia sẻ file dùng giao thức FTP, vẫn cần 2 lần copy
và user phải biết địa chỉ vật lý của ftp server
- SPRITE Network OS: được phát triển vào giữa những năm 1980 tại ĐH Universty of California at Berkerly, Mỹ
- Năm 1983: Andrew File System (AFS) được phát triển tại ĐH Carnegie Mellon với sự hỗ trợ của hãng IBM, Mỹ
- Năm 1985: Sun NFS được hãng Sun Microsystems phát triển
Trang 7- Đầu năm 1990s: Hệ thống file CODE được phát triển Đây
là bản kế tiếp của AFS
- ZEBRA: Được phát triển vào đầu những năm 1990 tại
ĐH University of California at Berkerly, Mỹ
- HARP: Được phát triển vào đầu những năm 1990 tại ĐH MIT, Mỹ
- Lustre: Là một DFS mã mở, có khả năng kết hợp hàng chục ngàn nút và cung cấp dung lượng lưu trữ đến petabytes Phiên bản 1.80 được phát hành vào tháng 5 năm 2009
1.3 CÁC YÊU CẦU ĐỐI VỚI HỆ THỐNG FILE PHÂN TÁN
Các yêu cầu chính đối với hệ thống file phân tán bao gồm: tính trong suốt, hiệu năng, khả năng chịu lỗi và khả năng mở rộng
1.4 CÁC KỸ THUẬT ĐẶT TÊN FILE TRONG HỆ THỐNG FILE PHÂN TÁN
Các kỹ thuật thực hiện việc đặt tên file trong hệ thống file phân tán bao gồm: Dịch tên đường dẫn, Tên nhận dạng có cấu trúc, Thông tin gợi ý hint và Các cơ chế mount
1.4.1 Dịch tên đường dẫn (Pathname translation)
Dịch tên đường dẫn là ánh xạ từ trên file sang tên nhận dạng mức thấp và thường được thực hiện bằng một thủ tục tìm kiếm
đệ quy
1.4.2 Tên nhận dạng có cấu trúc (Structured Identifiers)
Mỗi tên nhận dạng có cấu trúc là một chuỗi bit, thường gồm
2 thành phần:
- Phần đầu dùng để nhận dạng đơn vị thành phần chứa file
Trang 8- Phần còn lại nhận dạng file cụ thể trong đơn vị thành phần
1.4.3 Thông tin gợi ý (Hint)
Hint là một kỹ thuật thường được sử dụng trong ánh xạ vị trí (location mapping) của các DFS
1.4.4 Các cơ chế mount (Mount mechanism)
Cơ chế mount là việc kết hợp các hệ thống file từ xa vào hệ thống file cục bộ để tạo thành một cấu trúc tên toàn cục
Trang 9KẾT LUẬN CHƯƠNG 1
Chương 1 trình bày các khái niệm chung về hệ thống file phân tán: khái niệm và các yêu cầu đối với hệ thống file phân tán Ngoài ra, sơ lược lịch sử phát triển và các kỹ thuật thực hiện việc đặt tên trong hệ thống file phân tán cũng được trình bày
Trang 10CHƯƠNG 2 MỘT SỐ HỆ THỐNG FILE PHÂN TÁN
2.1 HỆ THỐNG FILE PHÂN TÁN NFS (NETWORK FILE SYSTEM)
Hệ thống file mạng phát triển bởi hãng Sun Microsystem (Mỹ) - thường được gọi tắt là NFS NFS ban đầu được phát triển chủ yếu dành cho các máy trạm UNIX, tuy nhiên sau đó nó cũng có thể chạy tốt trên các hệ điều hành khác
2.1.1 Tổng quan về NFS
Trong mô hình dịch vụ file từ xa (Remote file service), các
client truy cập một cách trong suốt đến hệ thống file được quản lý bởi một server ở xa Vì thế, thông thường các client không biết vị trí lưu trữ thực sự của các file Thay vào đó, chúng được cung cấp một giao diện truy nhập đến hệ thống file, tương tự như giao diện của các hệ thống file cục bộ thông thường Trong trường hợp riêng, client chỉ được cung cấpmột giao diện chứa nhiều các thao tác file khác nhau, server chỉ có nhiệm vụ thực thi các thao tác file đó
Mô hình hệ thống file được đưa ra bởi NFS cũng giống như
mô hình được đưa ra bởi hệ thống dựa trên UNIX Các file sẽ được xem như dãy tuần tự các byte Chúng được tổ chức phân cấp trong một đồ thị định danh, trong đó các nút biểu diễn các thư mục và các file Để truy cập một file, client phải tìm tên của nó trong một dịch
vụ định danh (naming service) và sẽ nhận được điều khiển file kết hợp (associated file handle) Ngoài ra mỗi file có một số các
Trang 11thuộc tính mà giá trị của chúng có thể được tìm và thay đổi
2.1.2 Truyền thông
Một điều quan trọng trong NFS đó là sự độc lập với hệ điều hành, kiến trúc mạng và các giao thức vận chuyển Ví dụ như, các client chạy trên hệ thống Windows vẫn có thể giao tiếp với một máy
chủ file (file server) UNIX
2.1.3 Đồng bộ hóa
Các file trong một hệ thống file phân tán được chia sẻ bởi nhiều client Nếu việc chia sẻ không bao giờ xảy ra thì quả thật như thế chẳng còn ý nghĩa của hệ thống file phân tán Việc chia sẻ các file đòi hỏi cần phải có sự đồng bộ hóa Sự đồng bộ hóa sẽ là khá đơn giản nếu các file được giữ trên một server trung tâm Tuy nhiên khi ấy hiệu năng sẽ là một vấn đề Bởi thế, các client thường được phép giữ một bản sao cục bộ của file trong khi chúng đang đọc
và ghi nội dung file
2.1.4 Lưu đệm (caching) và bản sao (replication)
Cũng như các hệ thống file phân tán khác, NFS sử dụng bộ đệm cho client để tăng hiệu năng Thêm vào đó, nó cũng hỗ trợ việc tạo các bản sao của file
2.1.5 Vấn đề chịu lỗi
Vấn đề với cơ chế RPC khi được dùng bởi NFS đó là nó không đảm bảo tính tin cậy Trên thực tế, các client và server RPC stub có thể được sinh ra dựa trên giao thức vận chuyển hướng kết nối tin cậy như TCP, hoặc giao thức vận chuyển phi kết nối không tin cậy như UDP
Trang 12Một trong những vấn đề lớn khác của RPC là thiếu cơ
chế phát hiện các yêu cầu trùng lặp (duplicate request) Như vậy sẽ
xảy ra trường hợp, khi một hồi đáp RPC bị mất và client truyền lại
(retransmit) thành công yêu cầu gốc đến server và kết quả là server
sẽ phải thực hiện lại yêu cầu đó thêm một lần nữa
2.1.6 An toàn – an ninh
Ý tưởng chính của NFS đó là một hệ thống file từ xa sẽ được hiện diện tại client như thể nó là một phần trong hệ thống file cục bộ của client Cũng chính vì vậy mà vấn đề an toàn, an ninh trong NFS luôn được tập trung chính vào truyền thông giữa client
và server Truyền thông an toàn có nghĩa là có một kênh an toàn được thiết lập ở giữa server và client
2.2 HỆ THỐNG FILE PHÂN TÁN GFS (GOOGLE FILE SYSTEM)
2.2.1 Giới thiệu về GFS
Hệ thống file Google (Google File System - GFS) được phát triển nhằm đáp ứng nhu cầu xử lý thông tin ngày càng tăng của Google GFS cũng hướng tới những mục tiêu chính tương tựnhư những hệ thống file phân tán đã có, như hiệu năng, tính mở rộng và tính sẵn sàng Tuy nhiên, GFS được xây dựng dựa trên một số giả định đầu vào xuất phát từ việc khảo sát khối lượng dữ liệu cần xử lý của các ứng dụng và môi trường công nghệ hiện tại
2.2.2 Kiến trúc của GFS
GFS bao gồm một master (máy chủ) đơn và nhiều chunkservers (bộ chứa dữ liệu) và được truy cập bởi nhiều clients
Trang 13(máy khách) Mỗi một chunkserver là một máy tính chạy Linux phổ thông điển hình thực hiện thao tác của máy chủ ở cấp người dùng Một chunkserver cũng có thể được sử dụng như một máy khách với điều kiện đảm bảo hiệu năng
Các tập tin được chia thành nhiều chunks có kích thước
cố định Mỗi một chunk (đoạn dữ liệu) được xác định bằng một
chunk handle 64 bit duy nhất không thể biến đổi mà mang tính toàn
cục, được gán bởi máy chủ (master) vào thời điểm tạo chunk Các chunkserver lưu trữ các chunk ở đĩa cục bộ như là các file Linux đồng thời đọc hoặc ghi dữ liệu chunk được xác định bởi chunk handle và dải byte Để tăng độ tin cậy, mỗi một chunk được sao chép trên nhiều chunkserver vật lý
2.2.3 Chịu lỗi và chuẩn đoán lỗi
Một trong những thử thách lớn nhất trong quá trình thiết kế hệ thống là việc xử lý những thành phần bị lỗi xảy ra thường xuyên Chất lượng và số lượng của những thành phần này làm cho vấn đề này trở nên phức tạp hơn Không thể hoàn toàn tin tưởng vào máy móc và cũng không thể hoàn toàn tin tưởng vào các
ổ đĩa cứng Những lỗi thành phần có thể gây ra kết quả là hệ thống không sẵn sàng hoặc xấu hơn là gây mất dữ liệu
2.3 HỆ THỐNG FILE PHÂN TÁN CIFS (COMMON INTERNET FILE SYSTEM)
2.3.1 Khái niệm về hệ thống file phân tán CIFS
The Common Internet File System (CIFS) còn được biết tới với cái tên Server Message Block (SMB), là một giao thức được
Trang 14sử dụng chủ yếu để chia sẻ files trên mạng LAN Giao thức này cho phép một máy khách (client) thực hiện các thao tác với các file như là chúng nằm trên máy tính đó Các thao tác như đọc, ghi, tạo, xóa và đổi tên đều được hỗ trợ - chỉ có sự khác biệt duy nhất là: các tập tin đó đều không nằm trên máy tính cá nhân mà thực tế là nằm trên một máy chủ từ xa
2.3.2 Ứng dụng
Giao thức CIFS chủ yếu được sử dụng trong các hệ điều hành của Microsoft Windows For Workgroups là hệ điều hành đầu tiên của Microsoft sử dụng CIFS, và các hệ điều hành sau
đó của Microsoft đều có thể có chức năng như máy chủ CIFS và máy khách Các hệ điều hành của Microsoft sử dụng CIFS để thao tác file
từ xa, duyệt (thông qua biểu tượng Network Neighborhood), xác thực (WindowsNT và Windows 2000), vàcác dịch vụ máy in từ xa
Có thể nói rằng cốt lõi của chức năng mạng của Microsoft được xây dựng trên các dịch vụ CIFS
2.3.3 Lịch sử phát triển
Năm 1984, IBM phát triển một giao thức lập trình ứng dụng (API) cho phép các trao đổi mạng cơ bản giữa các máy trong một mạng nhỏ.Tuy nhiên, API yêu cầu một giao thức tầng giao vận để có thể gửi và nhận dữ liệu Một năm sau đó, IBM đã phát triển một giao thức tầng giao vận có thể đưa NetBIOS API vào đời sống API
và giao thức giao vận được gộp vào một đối tượng thực thể và gọi
là NetBIOS Enhanced User Interface, hay là NetBEUI
Trang 15Vào thời gian đó, các giao thức giao vận khác đang được
sử dụng phổ biến và NetBIOS API đã nhanh chóng được triển khai
sử dụng trên nhiều giao thức giao vận như DECnet, IPX/SPX và TCP/IP Đồng thời, API cũng đã trở nên khá phổ biến
Sau đó Microsoft và Intel đã lần đầu tiên giới thiệu giao thức chia sẻ file SMB/CIFS, với tiêu đề là “Giao thức cốt lõi” (Core Protocol) Microsoft và Intel chọn sử dụng NetBIOS API để giao chuyển các gói tin CIFS ở tầng trên Kể từ đó, CIFS sử dụng NetBIOS trên TCP đã trở thành cơ chế chia sẻ file trên mạng chuẩn mực cho các hệ điều hành của Microsoft
2.3.4 Sự thay đổi trong tương lai
Nhiều nhà cung cấp đang tìm kiếm cách thức để có thể hoàn toàn thực hiện từng giai đoạn của NetBIOS và chạy CIFS trực tiếp trên TCP và UDP Trong CIFS1.0 đã cho rằng CIFS không phụ thuộc vào giao thức giao vận cụ thể nào và có chỉ ra cách CIFS chạy trên TCP
2.4 HỆ THỐNG FILE PHÂN TÁN LUSTRE
2.4.1 Tổng quan về Lustre
Môi trường điện toán mạng là trung tâm yêu cầu một hệ thống lưu trữ đáng tin cậy, hiệu năng cao mà các client có thể tin cậy lưu trữ và truyền dữ liệu Môi trường điện toán hợp tác đơn giản như các mạng doanh nghiệp thường đáp ứng các yêu cầu này bằng cách
sử dụng hệ thống file phân tán dựa trên mô hình Client/Server chuẩn
Hệ thống file phân tán như NFS và AFS đã thành công trong nhiều doanh nghiệp nhưng vẫn không thể đáp ứng được yêu cầu của môi
Trang 16trường điện toán hiệu năng cao ngày nay Hệ thống file phân tán Lustre đem đến hiệu năng đáng kể và khả năng mở rộng dựa trên các
hệ thống file phân tán hiện có Lustre tận dụng sức mạnh và tính linh hoạt của hệ điều hành nguồn mở Linux để cung cấp một hệ thống file tuân thủ POSIX thực sự hiện đại, đáp ứng các yêu cầu của các cụm (cluster) lớn ngày nay, trong khi cung cấp một thiết kế và hướng mở rộng cho các môi trường thậm chí còn lớn hơn sau này Cái tên
"Lustre" là sự kết hợp của hai thuật ngữ "Linux" và "Clusters" Lustre cung cấp nhiều ưu điểm vượt trội so với các hệ thống file phân tán trước đó Quan trọng nhất là Lustre có thể chạy trên các phần cứng thông thường, và sử dụng ổ đĩa để lưu trữ dữ liệu file và các máy chủ siêu dữ liệu để lưu trữ siêu dữ liệu quản lý hệ thống file Thiết kế này giúp phân chia tải hiệu quả hơn giữa các tài nguyên tính toán và lưu trữ Các máy chủ siêu dữ liệu (MDS) chuyển đổi dự phòng được sao lưu duy trì một bản ghi các thay đổi trên file và hệ thống file cấp cao Sự phân chia tải và trách nhiệm này giúp hệ thống filecó khả năng mở rộng cao và khả năng phục hồi tin cậy hơn từ tình trạng lỗi bằng sự kết hợp độc đáo giữa các ưu điểm của các hệ thống file nhật ký (journaling) và phân tán (distributed) Lustre hỗ trợ các ngữ nghĩa khóa file và siêu dữ liệu mạnh mẽ để duy trì tính gắn kết toàn bộ của các hệ thống file ngay cả khi xảy ra truy cập đồng thời Khóa file được phân tán qua các đích lưu trữ (Object Storage Targets - OST) tạo thành hệ thống file, với mỗi khóa xử lý OST cho các đối tượng mà nó lưu trữ