1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn đề tài 04 tìm hiểu về hệ thống file phân tán google file system

23 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu về hệ thống file phân tán Google File System
Tác giả Vũ Tuấn Hùng, Nguyễn Đức Hiếu, Đặng Thị Thanh Huyền, Lê Trần Hiếu, Nguyễn Xuân Khải
Người hướng dẫn PGS. TS. Hoàng Xuân Dậu
Trường học Học viện Công nghệ Bưu Chính Viễn Thông
Chuyên ngành An Toàn Hệ Điều Hành
Thể loại bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 23
Dung lượng 563,41 KB

Nội dung

Nó được tối ưu hóa để chứa dữ liệu sử dụng và lưu trữ nhu cầu khác nhau củaGoogle, chẳng hạn như công cụ tìm kiếm của nó, mà tạo ra một lượng lớn dữ liệuphải được lưu trữ.GFS dựa trên ki

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN 1

Giảng viên hướng dẫn: PGS TS Hoàng Xuân Dậu

HÀ NỘI, 02/2024

Trang 2

Với lòng biết ơn sâu sắc nhất, nhóm chúng em xin gửi đến tập thể thầy cô Họcviện Công nghệ Bưu Chính Viễn thông đã truyền đạt vốn kiến thức quý báu chochúng em trong suốt quá trình học tập Nhờ có những lời hướng dẫn, dạy bảo củacác thầy cô nên đề tài nghiên cứu của chúng em mới có thể hoàn thiện tốt đẹp.

Một lần nữa, chúng em xin chân thành cảm ơn thầy Hoàng Xuân Dậu đã giúp

đỡ, quan tâm để chúng em có thể hoàn thành tốt bài báo cáo này trong thời gianqua

Bài báo cáo thực hiện trong khoảng thời gian hơn 1 tháng Bước đầu đi vào thực

tế của chúng em còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi nhữngthiếu sót, chúng em rất mong nhận được những ý kiến đóng góp quý báu của thầy

để kiến thức của nhóm chúng em trong lĩnh vực này được hoàn thiện hơn đồng thời

có điều kiện bổ sung, nâng cao ý thức của mình

Chúng em xin chân thành cảm ơn!

Trang 3

TÓM TẮT NỘI DUNG ĐỀ TÀI

Cùng với sự phát triển của mạng máy tính và sự bùng nổ về thông tin và dữ liệucần xử lý đặt ra yêu cầu về tính toán, quản lý không thể thực hiện tập trung trongtrên một máy tính đơn Nó đòi hỏi các hệ thống tính toán phải được kết hợp từ một

số lượng lớn các máy tính kết nối với nhau qua một mạng tốc độ cao Vì vậy cần

có các hệ phân tán che dấu đi việc xử lý độc lập trên các máy tính tạo cho ngườidùng cảm nhận như đang thao tác trên một hệ thống đơn nhất mà họ đã quen dùngtrước đây Ngày nay, hệ phân tán phát triển rất nhanh và được ứng dụng rộng khắp

Đó có thể là hệ tính toán phân tán (Distributed computing Systems) hoặc hệ thốngthông tin phân tán (Distributed Information Systems) Vấn đề cơ bản nhất của các

hệ thống phân tán đó là việc chia sẻ dữ liệu và không có gì ngạc nhiên khi hệ thốngtệp tin phân tán tạo thành cơ sở cho nhiều ứng dụng phân tán Trong báo cáo này,

ta sẽ tìm hiểu các khái niệm cơ bản của hệ phân tán nói chung và tập trung chủ yếuvào hệ thống file phân tán đóng vai trò như 1 mô thức cho các hệ phân tán, với mụctiêu chính là tìm hiểu, phân tích hệ thống file phân tán đồng thời qua đó ta cũngtìm hiểu một hệ thống file phân tán cụ thể đó là: Google File System (GFS)

Trang 4

MỤC LỤC

CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ GOOGLE FILE SYSTEM 1

1.1 Định nghĩa hệ thống file phân tán 1

1.2 Hệ thống file phân tán Google File System 1

CHƯƠNG 2 CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM 2

2.1 Kiến trúc của GFS 2

2.1.1 Nút Master Đơn (Singel Master) 3

2.1.2 Kích thước của các Chunk (Chunksize) 3

2.1.3 Siêu dữ liệu (Metadata) 4

2.1.4 Nhật ký hoạt động 6

2.2 Các thành phần chính của GFS 7

2.2.1 GFS Clients (Users) 8

2.2.2 GFS Master Servers 8

2.2.3 GFS Chunk Servers 8

2.3 Cơ chế hoạt động của GFS 9

2.3.1 Quản lý Namespace và Khóa 9

2.3.2 Đặt Bản sao 10

2.3.3 Tạo, Sao chép lại, Cân bằng lại 10

2.3.4 Thu gom 11

2.3.5 Phát hiện Bản sao cũ 11

2.4 Cài đặt, thiết kế Google File System 12

2.4.1 Giả định 12

2.4.2 Giao diện 13

2.5 Ưu và nhược điểm của GFS 13

2.5.1 Ưu điểm 13

Trang 5

2.5.2 Nhược điểm 13

CHƯƠNG 3 KẾT LUẬN 15

TÀI LIỆU THAM KHẢO 16

PHÂN CHIA CÔNG VIỆC 17

Trang 6

DANH MỤC HÌNH VẼ

Hình 2.1 Kiến trúc của GFS 2

Hình 2.2 Giao tiếp Metadata giữa Client và Master 5

Hình 2.3 Các thực thể trong GFS 7

Hình 2.4 Giao tiếp giữa ứng dụng và Chunk erver 9

Hình 2.5 Thiết kế cơ bản của GFS 12

Trang 7

CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ GOOGLE FILE SYSTEM

1.1 Định nghĩa hệ thống file phân tán

Hệ thống tập tin phân tán là một loại hệ thống tập tin mà dữ liệu được lưu trữ trênnhiều máy tính hoặc thiết bị lưu trữ khác nhau trong một mạng máy tính Thôngthường, hệ thống tập tin phân tán bao gồm một máy chủ tập tin chính và nhiều máykhách tập tin, nơi dữ liệu được lưu trữ trên nhiều máy tính khác nhau, nhưng đượcquản lý và truy cập như một hệ thống tập tin đơn lẻ

Thông thường các máy khách không truy cập trực tiếp vào các khối dữ liệu của

hệ thống tập tin mà thường thông qua việc sử dụng một giao thức (protocol) nào

đó Protocol cho phép việc hạn chế truy cập vào hệ thống tập tin bằng cách sử dụngcác danh sách truy cập hoặc các khả năng truy cập trên các máy chủ và các máykhách tùy vào thiết kế của nó

Các hệ thống tập tin phân tán thường bao gồm các khả năng đi kèm khác nhưviệc nhân bản dữ liệu hay khả năng chịu lỗi Các khả năng này nhằm mục đíchlàm cho hệ thống vẫn tiếp tục hoạt động và tránh việc mất dữ liệu khi một vài máytrong hệ thống gặp trục trặc

1.2 Hệ thống file phân tán Google File System

Google File System (GFS) là một hệ thống mở rộng phân phối tập tin (DFS) tạo

ra bởi Google Inc và phát triển để phù hợp với dữ liệu mở rộng của Google yêu cầuchế biến GFS cung cấp khả năng chịu lỗi, độ tin cậy, khả năng mở rộng, tính sẵn

có và hiệu suất với các mạng lớn và các nút được kết nối GFS được tạo thành từnhiều hệ thống lưu trữ được xây dựng từ các thành phần phần cứng hàng hóa giá

rẻ Nó được tối ưu hóa để chứa dữ liệu sử dụng và lưu trữ nhu cầu khác nhau củaGoogle, chẳng hạn như công cụ tìm kiếm của nó, mà tạo ra một lượng lớn dữ liệuphải được lưu trữ

GFS dựa trên kiến trúc master-slave trong đó một chủ duy nhất điều phối tất cảquyền truy cập vào hệ thống tệp và nhiều ChunkServer lưu trữ dữ liệu Hệ thốngđược tối ưu hóa cho khối lượng công việc có thông lượng cao, độ trễ thấp, điển hìnhcho các ứng dụng của Google, chẳng hạn như Google Search và Google Maps

GFS cũng hướng tới những mục tiêu chính tương tự như những hệ thống filephâ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 đượcxâ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

1

Trang 8

CHƯƠNG 2 CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM

2.1 Kiến trúc của GFS

Cụm GFS được cấu thành từ một nút master đơn và nhiều nút chunkserver, đượctruy cập bởi nhiều khách hàng (client) Mỗi thành phần này thường là một máy chủLinux chạy tiến trình máy chủ ở cấp độ người dùng Việc triển khai đồng thời cảchunkserver và client trên cùng một máy chủ là khả thi, miễn là tài nguyên máychủ đáp ứng đủ và chấp nhận được nguy cơ giảm độ tin cậy do chạy mã ứng dụngtiềm ẩn không ổn định

Hình 2.1: Kiến trúc của GFS

Các file được chia thành các chunk có kích thước cố định Mỗi chunk được xácđịnh bởi một khóa chunk 64 bit toàn cầu, không thay đổi, do nút master cấp phát tạithời điểm tạo chunk Nút chunkserver lưu trữ các chunk trên ổ đĩa cục bộ dưới dạngfile Linux và thực hiện đọc hoặc ghi dữ liệu chunk được xác định bởi khóa chunk

và phạm vi byte Để đảm bảo tính tin cậy, mỗi chunk được sao chép dự phòng trênnhiều nút chunkserver khác nhau Theo mặc định, hệ thống lưu trữ ba bản sao,nhưng người dùng có thể tùy chỉnh mức độ sao chép cho các vùng khác nhau củakhông gian tên file

Nút master duy trì tất cả siêu dữ liệu của hệ thống file Siêu dữ liệu bao gồmkhông gian tên, thông tin kiểm soát truy cập, ánh xạ từ file sang các chunk và vịtrí hiện tại của các chunk Nút master cũng điều khiển các hoạt động toàn hệ thốngnhư quản lý thuê chunk, dọn dẹp các chunk mồ côi và di chuyển chunk giữa các nútchunkserver Nút master định kỳ liên lạc với từng nút chunkserver bằng các thôngđiệp Heartbeat để cung cấp hướng dẫn và thu thập trạng thái của chúng

Mã client GFS được tích hợp vào từng ứng dụng, triển khai API của hệ thốngfile và giao tiếp với nút master và nút chunkserver để đọc hoặc ghi dữ liệu thay mặtcho ứng dụng Client tương tác với master cho các hoạt động liên quan đến siêu

dữ liệu, nhưng tất cả các giao tiếp mang dữ liệu đều diễn ra trực tiếp với các nút

2

Trang 9

CHƯƠNG 2 CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM

chunkserver Hệ thống không cung cấp API POSIX và do đó không cần kết nối vớilớp vnode của Linux

Cả client và chunkserver đều không lưu trữ dữ liệu file trong bộ nhớ cache.Cache của client mang lại ít lợi ích vì hầu hết các ứng dụng đều truyền qua các filelớn hoặc có bộ làm việc quá lớn để lưu trữ trong cache Việc không sử dụng cachegiúp đơn giản hóa client và toàn bộ hệ thống bằng cách loại bỏ các vấn đề về tínhnhất quán của cache (Tuy nhiên, client có thể lưu trữ siêu dữ liệu trong cache) Nútchunkserver không cần cache dữ liệu file vì các chunk được lưu trữ dưới dạng filecục bộ, do đó bộ nhớ đệm của Linux đã giữ dữ liệu được truy cập thường xuyêntrong RAM

2.1.1 Nút Master Đơn (Singel Master)

Sử dụng một nút master đơn giúp đơn giản hóa đáng kể thiết kế và cho phépnút master đưa ra các quyết định phân bổ và sao chép chunk tinh vi dựa trên kiếnthức toàn cục Tuy nhiên, cần giảm thiểu tối đa sự tham gia của nút master trongcác hoạt động đọc và ghi để tránh nó trở thành điểm nghẽn Client không bao giờđọc và ghi dữ liệu file thông qua nút master Thay vào đó, client hỏi nút master vềcác nút chunkserver mà nó nên liên hệ Client lưu trữ đệm thông tin này trong mộtkhoảng thời gian giới hạn và trực tiếp tương tác với các nút chunkserver cho nhiềuhoạt động tiếp theo

Để giải thích các tương tác trong quá trình đọc đơn giản, hãy tham khảo Hình

1 Đầu tiên, sử dụng kích thước chunk cố định, client chuyển đổi tên file và offsetbyte do ứng dụng cung cấp thành chỉ số chunk trong file Sau đó, client gửi yêucầu đến nút master, chứa tên file và chỉ số chunk Nút master trả lời với khóa chunktương ứng và vị trí của các bản sao Client lưu trữ đệm thông tin này bằng cách sửdụng tên file và chỉ số chunk làm khóa

Tiếp theo, client gửi yêu cầu đến một trong các bản sao, ưu tiên bản gần nhất.Yêu cầu này xác định khóa chunk và phạm vi byte trong chunk đó Các lần đọc tiếptheo cùng một chunk không yêu cầu tương tác client-master nữa cho đến khi thôngtin được lưu trữ đệm hết hạn hoặc file được mở lại Thực tế, client thường yêu cầunhiều chunk trong cùng một yêu cầu và nút master cũng có thể bao gồm thông tincho các chunk tiếp theo sau các chunk được yêu cầu Thông tin bổ sung này giúptránh được nhiều tương tác client-master trong tương lai với chi phí gần như khôngđáng kể

2.1.2 Kích thước của các Chunk (Chunksize)

Kích thước chunk là một trong những tham số thiết kế quan trọng với kích thước

là 64 MB, lớn hơn nhiều so với kích thước khối thông thường của hệ thống file Mỗi

3

Trang 10

CHƯƠNG 2 CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM

bản sao chunk được lưu trữ dưới dạng file Linux đơn giản trên một chunkserver vàchỉ được mở rộng khi cần thiết Phân bổ dung lượng trễ (Lazy space allocation)giúp tránh lãng phí dung lượng do phân mảnh nội bộ, có lẽ là nhược điểm lớn nhấtcủa kích thước chunk lớn như vậy

Kích thước chunk lớn mang lại một số lợi thế quan trọng như sau:

• Thứ nhất, nó giảm thiểu nhu cầu của client phải tương tác với master vì việcđọc và ghi trên cùng một chunk chỉ yêu cầu một yêu cầu ban đầu đến master

để lấy thông tin vị trí chunk Sự giảm thiểu này đặc biệt quan trọng đối vớikhối lượng công việc vì các ứng dụng chủ yếu đọc và ghi các file lớn theo tuần

tự Ngay cả đối với các đọc ngẫu nhiên nhỏ, client vẫn có thể thoải mái lưu trữđệm tất cả thông tin vị trí chunk cho một bộ làm việc nhiều TB

• Thứ hai, trên một chunk lớn, client có khả năng thực hiện nhiều thao tác hơntrên một chunk nhất định, do đó có thể giảm thiểu chi phí mạng bằng cách duytrì kết nối TCP lâu dài với chunkserver trong một khoảng thời gian dài

• Thứ ba, nó giảm kích thước của siêu dữ liệu được lưu trữ trên master Điềunày cho phép giữ siêu dữ liệu trong bộ nhớ

Mặt khác, kích thước chunk lớn, ngay cả với phân bổ dung lượng trễ, vẫn cónhững nhược điểm Một file nhỏ bao gồm một số lượng chunk nhỏ, có thể chỉ làmột Các chunkserver lưu trữ những chunk này có thể trở thành điểm nóng (hotspot)nếu nhiều client truy cập cùng một file

Tuy nhiên, điểm nóng đã phát triển khi GFS lần đầu tiên được sử dụng bởi hệthống hàng đợi (batch-queue system): một file thực thi được ghi vào GFS dưới dạngfile một chunk và sau đó được khởi chạy trên hàng trăm máy cùng một lúc Mộtvài chunkserver lưu trữ file thực thi này bị quá tải bởi hàng trăm yêu cầu đồng thời.Cách để khắc phục vấn đề này là lưu trữ các file thực thi đó với yếu tố sao chépcao hơn và làm cho hệ thống hàng đợi staggered thời gian bắt đầu ứng dụng Mộtgiải pháp lâu dài tiềm năng là cho phép client đọc dữ liệu từ các client khác trongnhững tình huống như vậy

2.1.3 Siêu dữ liệu (Metadata)

Nút master lưu trữ ba loại siêu dữ liệu chính:

• Không gian tên file và chunk

• Phép ánh xạ từ file sang các chunk

• Vị trí của các bản sao cho mỗi chunk

4

Trang 11

CHƯƠNG 2 CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM

Hình 2.2: Giao tiếp Metadata giữa Client và Master

Tất cả siêu dữ liệu được lưu trữ trong bộ nhớ của nút master Hai loại đầu tiên(không gian tên và ánh xạ file-to-chunk) cũng được duy trì lâu dài bằng cách ghinhật ký các thay đổi vào một nhật ký hoạt động (operation log) được lưu trữ trên

ổ đĩa cục bộ của master và được sao chép trên các máy từ xa Việc sử dụng nhật

ký cho phép cập nhật trạng thái master một cách đơn giản, đáng tin cậy và tránhđược sự không nhất quán trong trường hợp master bị crash Nút master không lưutrữ thông tin vị trí chunk một cách lâu dài Thay vào đó, nó hỏi từng chunkserver

về các chunk của nó khi master khởi động và bất cứ khi nào một chunkserver thamgia vào cụm

a, Cấu Trúc Dữ Liệu Trong Bộ Nhớ

Vì siêu dữ liệu được lưu trữ trong bộ nhớ, các hoạt động của master diễn ranhanh chóng Hơn nữa, master có thể dễ dàng và hiệu quả kiểm tra toàn bộ trạngthái của nó theo định kỳ trong nền Việc kiểm tra định kỳ này được sử dụng để thựchiện dọn dẹp rác chunk (chunk garbage collection), sao chép lại (re-replication) khichunkserver gặp sự cố và di chuyển chunk để cân bằng tải và dung lượng đĩa trêncác chunkserver

Một điểm đáng lo ngại tiềm ẩn cho cách tiếp cận chỉ sử dụng bộ nhớ này là sốlượng chunk và do đó dung lượng của toàn bộ hệ thống bị giới hạn bởi dung lượng

bộ nhớ mà master sở hữu Tuy nhiên, đây không phải là hạn chế nghiêm trọng trongthực tế Master duy trì chưa đến 64 byte siêu dữ liệu cho mỗi chunk 64 MB Hầuhết các chunk đều đầy vì hầu hết các file chứa nhiều chunk, trong đó chỉ chunkcuối cùng có thể được điền một phần Tương tự, dữ liệu không gian tên file thườngyêu cầu ít hơn 64 byte cho mỗi file vì nó lưu trữ tên file một cách gọn gàng bằngcách sử dụng nén tiền tố (prefix compression)

5

Trang 12

CHƯƠNG 2 CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM

Nếu cần thiết để hỗ trợ các hệ thống file thậm chí lớn hơn, thì chi phí thêm RAMcho master là cái giá nhỏ để đổi lấy sự đơn giản, đáng tin cậy, hiệu suất và tính linhhoạt có được bằng cách lưu trữ siêu dữ liệu trong bộ nhớ

b, Vị trí của các Chunk

Nút master không lưu trữ bản ghi vĩnh viễn về các chunkserver nào có bản saocủa một chunk nhất định Thay vào đó, nó chỉ đơn giản gửi yêu cầu thăm dò cácchunkserver để lấy thông tin đó khi khởi động Master có thể tự cập nhật sau đó vì

nó kiểm soát tất cả việc phân bổ chunk và theo dõi trạng thái chunkserver bằng cácthông điệp Heartbeat định kỳ

So với việc cố gắng giữ thông tin vị trí chunk một cách lâu dài trên master, việcyêu cầu dữ liệu từ các chunkserver khi khởi động và định kỳ sau đó đơn giản hơnnhiều Điều này giúp loại bỏ vấn đề đồng bộ hóa master và chunkserver khi cácchunkserver tham gia và rời khỏi cụm, thay đổi tên, lỗi, khởi động lại, v.v

Một cách khác để hiểu quyết định thiết kế này là nhận ra rằng một chunkserver

có quyền quyết định cuối cùng về các chunk mà nó có hoặc không có trên đĩa củariêng mình Việc cố gắng duy trì một cái nhìn thống nhất về thông tin này trênmaster là không cần thiết vì lỗi trên chunkserver có thể khiến các chunk biến mấtđột ngột (ví dụ, ổ đĩa bị hỏng và bị vô hiệu hóa) hoặc người vận hành có thể đổitên cho chunkserver

2.1.4 Nhật ký hoạt động

Nhật ký hoạt động lưu giữ lịch sử thay đổi của các siêu dữ liệu quan trọng Đây

là thành phần trung tâm của GFS Nó không chỉ là bản ghi vĩnh viễn duy nhất củasiêu dữ liệu mà còn đóng vai trò như dòng thời gian logic xác định thứ tự của cáchoạt động đồng thời Các file và chunk, cũng như phiên bản của chúng (xem Phần4.5), đều được xác định duy nhất và vĩnh viễn bởi thời gian logic tại thời điểmchúng được tạo

Vì nhật ký hoạt động rất quan trọng nêni phải lưu trữ nó một cách đáng tin cậy

và không hiển thị các thay đổi cho client cho đến khi các thay đổi siêu dữ liệu đượcghi lại vĩnh viễn Ngược lại, việc mất toàn bộ hệ thống file hoặc các hoạt độngclient gần đây ngay cả khi bản thân các chunk vẫn có thể xảy ra Do đó, cần phảisao chép nhật ký trên nhiều máy từ xa và chỉ phản hồi hoạt động của client sau khighi chép bản ghi nhật ký tương ứng vào đĩa cả cục bộ và từ xa Master sẽ gộp nhómmột vài bản ghi nhật ký với nhau trước khi ghi, do đó giảm thiểu tác động của việcghi và sao chép lên hiệu suất tổng thể của hệ thống

Master khôi phục trạng thái hệ thống file của nó bằng cách phát lại nhật ký hoạt

6

Ngày đăng: 03/03/2024, 09:39