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
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CÔNG NGHỆ THÔNG TIN o0o BÀI TẬP LỚN Đề tài 04: Tìm hiểu hệ thống file phân tán Google File System Môn học: An Toàn Hệ Điều Hành Số thứ tự nhóm: 04 Vũ Tuấn Hùng MSV: B21DCAT097 Nguyễn Đức Hiếu MSV: B21DCAT089 Đặng Thị Thanh Huyền MSV: B21DCAT105 Lê Trần Hiếu MSV: B21DCAT088 Nguyễn Xuân Khải MSV: B21DCAT106 Giảng viên hướng dẫn: PGS TS Hoàng Xuân Dậu HÀ NỘI, 02/2024 LỜI CẢM ƠN Trước tiên với tình cảm sâu sắc chân thành nhất, cho phép chúng em bày tỏ lòng biết ơn đến tất cá nhân tổ chức tạo điều kiện hỗ trợ, giúp đỡ nhóm chúng em suốt trình học tập nghiên cứu đề tài Trong suốt thời gian từ bắt đầu học tập trường đến nay, chúng em nhận nhiều quan tâm, giúp đỡ thầy cô bạn bè 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 Học viện Cơng nghệ Bưu Chính Viễn thơng truyền đạt vốn kiến thức quý báu cho chúng em suốt q trình học tập Nhờ có lời hướng dẫn, dạy bảo thầy cô nên đề tài nghiên cứu chúng em hồ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 hồn thành tốt báo cáo thời gian qua Bài báo cáo thực khoảng thời gian tháng Bước đầu vào thực tế chúng em hạn chế nhiều bỡ ngỡ nên khơng tránh khỏi thiếu sót, chúng em mong nhận ý kiến đóng góp quý báu thầy để kiến thức nhóm chúng em lĩnh vực hồn thiện đồng thời có điều kiện bổ sung, nâng cao ý thức Chúng em xin chân thành cảm ơn! TÓM TẮT NỘI DUNG ĐỀ TÀI Cùng với phát triển mạng máy tính bùng nổ thông tin liệu cần xử lý đặt u cầu tính tốn, quản lý khơng thể thực tập trung máy tính đơn Nó địi hỏi hệ thống tính tốn phải kết hợp từ số lượng lớn máy tính kết nối với qua mạng tốc độ cao Vì cần có hệ phân tán che dấu việc xử lý độc lập máy tính tạo cho người dùng cảm nhận thao tác hệ thống đơn mà họ quen dùng trước Ngày nay, hệ phân tán phát triển nhanh ứng dụng rộng khắp Đó hệ tính tốn phân tán (Distributed computing Systems) hệ thống thông tin phân tán (Distributed Information Systems) Vấn đề hệ thống phân tán việc chia sẻ liệu khơng có ngạc nhiên hệ thống tệp tin phân tán tạo thành sở cho nhiều ứng dụng phân tán Trong báo cáo này, ta tìm hiểu khái niệm hệ phân tán nói chung tập trung chủ yếu vào hệ thống file phân tán đóng vai trị mơ thức cho hệ phân tán, với mục tiêu tìm hiểu, phân tích hệ thống file phân tán đồng thời qua ta tìm hiểu hệ thống file phân tán cụ thể là: Google File System (GFS) MỤC LỤC CHƯƠNG GIỚI THIỆU CHUNG VỀ GOOGLE FILE SYSTEM 1.1 Định nghĩa hệ thống file phân tán 1.2 Hệ thống file phân tán Google File System CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM 2.1 Kiến trúc GFS 2.1.1 Nút Master Đơn (Singel Master) 2.1.2 Kích thước Chunk (Chunksize) 2.1.3 Siêu liệu (Metadata) 2.1.4 Nhật ký hoạt động 2.2 Các thành phần GFS 2.2.1 GFS Clients (Users) 2.2.2 GFS Master Servers 2.2.3 GFS Chunk Servers 2.3 Cơ chế hoạt động GFS 2.3.1 Quản lý Namespace Khóa 2.3.2 Đặt Bản 10 2.3.3 Tạo, Sao chép lại, Cân lại 10 2.3.4 Thu gom 11 2.3.5 Phát Bản 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 nhược điểm GFS 13 2.5.1 Ưu điểm 13 2.5.2 Nhược điểm 13 CHƯƠNG KẾT LUẬN 15 TÀI LIỆU THAM KHẢO 16 PHÂN CHIA CÔNG VIỆC 17 DANH MỤC HÌNH VẼ Hình 2.1 Kiến trúc GFS Hình 2.2 Giao tiếp Metadata Client Master Hình 2.3 Các thực thể GFS Hình 2.4 Giao tiếp ứng dụng Chunk erver Hình 2.5 Thiết kế GFS 12 CHƯƠNG 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 loại hệ thống tập tin mà liệu lưu trữ nhiều máy tính thiết bị lưu trữ khác mạng máy tính Thơng thường, hệ thống tập tin phân tán bao gồm máy chủ tập tin nhiều máy khách tập tin, nơi liệu lưu trữ nhiều máy tính khác nhau, quản lý truy cập hệ thống tập tin đơn lẻ Thông thường máy khách không truy cập trực tiếp vào khối liệu hệ thống tập tin mà thường thông qua việc sử dụng giao thức (protocol) Protocol cho phép việc hạn chế truy cập vào hệ thống tập tin cách sử dụng danh sách truy cập khả truy cập máy chủ máy khách tùy vào thiết kế Các hệ thống tập tin phân tán thường bao gồm khả kèm khác việc nhân liệu hay khả chịu lỗi Các khả nhằm mục đích làm cho hệ thống tiếp tục hoạt động tránh việc liệu vài máy 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) hệ thống mở rộng phân phối tập tin (DFS) tạo Google Inc phát triển để phù hợp với liệu mở rộng Google yêu cầu chế biến GFS cung cấp khả chịu lỗi, độ tin cậy, khả mở rộng, tính sẵn có hiệu suất với mạng lớn nút kết nối GFS tạo thành từ nhiều hệ thống lưu trữ xây dựng từ thành phần phần cứng hàng hóa giá rẻ Nó tối ưu hóa để chứa liệu sử dụng lưu trữ nhu cầu khác Google, chẳng hạn cơng cụ tìm kiếm nó, mà tạo lượng lớn liệu phải lưu trữ GFS dựa kiến trúc master-slave chủ điều phối tất quyền truy cập vào hệ thống tệp nhiều ChunkServer lưu trữ liệu Hệ thống 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ình cho ứng dụng Google, chẳng hạn Google Search Google Maps GFS hướng tới mục tiêu tương tự hệ thống file phân tán có, hiệu năng, tính mở rộng tính sẵn sàng Tuy nhiên, GFS xây dựng dựa số giả định đầu vào xuất phát từ việc khảo sát khối lượng liệu cần xử lý ứng dụng môi trường công nghệ CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM 2.1 Kiến trúc GFS Cụm GFS cấu thành từ nút master đơn nhiều nút chunkserver, truy cập nhiều khách hàng (client) Mỗi thành phần thường 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 chunkserver client máy chủ khả thi, miễn tài nguyên máy chủ đáp ứng đủ chấp nhận nguy giảm độ tin cậy chạy mã ứng dụng tiềm ẩn không ổn định Hình 2.1: Kiến trúc GFS Các file chia thành chunk có kích thước cố định Mỗi chunk xác định khóa chunk 64 bit tồn cầu, khơng thay đổi, nút master cấp phát thời điểm tạo chunk Nút chunkserver lưu trữ chunk ổ đĩa cục dạng file Linux thực đọc ghi liệu chunk xác định khóa chunk phạm vi byte Để đảm bảo tính tin cậy, chunk chép dự phòng nhiều nút chunkserver khác Theo mặc định, hệ thống lưu trữ ba sao, người dùng tùy chỉnh mức độ chép cho vùng khác không gian tên file Nút master trì tất siêu liệu hệ thống file Siêu liệu bao gồm khơng gian tên, thơng tin kiểm sốt truy cập, ánh xạ từ file sang chunk vị trí chunk Nút master điều khiển hoạt động toàn hệ thống quản lý thuê chunk, dọn dẹp chunk mồ côi di chuyển chunk nút chunkserver Nút master định kỳ liên lạc với nút chunkserver thông điệp Heartbeat để cung cấp hướng dẫn thu thập trạng thái chúng Mã client GFS tích hợp vào ứng dụng, triển khai API hệ thống file giao tiếp với nút master nút chunkserver để đọc ghi liệu thay mặt cho ứng dụng Client tương tác với master cho hoạt động liên quan đến siêu liệu, tất giao tiếp mang liệu diễn trực tiếp với nút CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM chunkserver Hệ thống khơng cung cấp API POSIX khơng cần kết nối với lớp vnode Linux Cả client chunkserver không lưu trữ liệu file nhớ cache Cache client mang lại lợi ích hầu hết ứng dụng truyền qua file lớn có làm việc lớn để lưu trữ cache Việc không sử dụng cache giúp đơn giản hóa client tồn hệ thống cách loại bỏ vấn đề tính quán cache (Tuy nhiên, client lưu trữ siêu liệu cache) Nút chunkserver không cần cache liệu file chunk lưu trữ dạng file cục bộ, nhớ đệm Linux giữ liệu truy cập thường xuyên RAM 2.1.1 Nút Master Đơn (Singel Master) Sử dụng nút master đơn giúp đơn giản hóa đáng kể thiết kế cho phép nút master đưa định phân bổ chép chunk tinh vi dựa kiến thức toàn cục Tuy nhiên, cần giảm thiểu tối đa tham gia nút master hoạt động đọc ghi để tránh trở thành điểm nghẽn Client khơng đọc ghi liệu file thông qua nút master Thay vào đó, client hỏi nút master nút chunkserver mà nên liên hệ Client lưu trữ đệm thơng tin khoảng thời gian giới hạn trực tiếp tương tác với nút chunkserver cho nhiều hoạt động Để giải thích tương tác trình đọc đơn giản, tham khảo Hình Đầu tiên, sử dụng kích thước chunk cố định, client chuyển đổi tên file offset byte ứng dụng cung cấp thành số chunk file Sau đó, client gửi yêu cầu đến nút master, chứa tên file số chunk Nút master trả lời với khóa chunk tương ứng vị trí Client lưu trữ đệm thông tin cách sử dụng tên file số chunk làm khóa Tiếp theo, client gửi yêu cầu đến sao, ưu tiên gần Yêu cầu xác định khóa chunk phạm vi byte chunk Các lần đọc chunk không yêu cầu tương tác client-master thông tin lưu trữ đệm hết hạn file mở lại Thực tế, client thường yêu cầu nhiều chunk yêu cầu nút master bao gồm thơng tin cho chunk sau chunk yêu cầu Thông tin bổ sung giúp tránh nhiều tương tác client-master tương lai với chi phí gần khơng đáng kể 2.1.2 Kích thước Chunk (Chunksize) Kích thước chunk tham số thiết kế quan trọng với kích thước 64 MB, lớn nhiều so với kích thước khối thơng thường hệ thống file Mỗi CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM chunk lưu trữ dạng file Linux đơn giản chunkserver mở rộng cần thiết Phân bổ dung lượng trễ (Lazy space allocation) giúp tránh lãng phí dung lượng phân mảnh nội bộ, có lẽ nhược điểm lớn kích thước chunk lớn Kích thước chunk lớn mang lại số lợi quan trọng sau: • Thứ nhất, giảm thiểu nhu cầu client phải tương tác với master việc đọc ghi chunk yêu cầu yêu cầu ban đầu đến master để lấy thông tin vị trí chunk Sự giảm thiểu đặc biệt quan trọng khối lượng cơng việc ứng dụng chủ yếu đọc ghi file lớn theo tuần tự Ngay đọc ngẫu nhiên nhỏ, client thoải mái lưu trữ đệm tất thơng tin vị trí chunk cho làm việc nhiều TB • Thứ hai, chunk lớn, client có khả thực nhiều thao tác chunk định, giảm thiểu chi phí mạng cách trì kết nối TCP lâu dài với chunkserver khoảng thời gian dài • Thứ ba, giảm kích thước siêu liệu lưu trữ master Điều cho phép giữ siêu liệu nhớ Mặt khác, kích thước chunk lớn, với phân bổ dung lượng trễ, có nhược điểm Một file nhỏ bao gồm số lượng chunk nhỏ, Các chunkserver lưu trữ chunk trở thành điểm nóng (hotspot) nhiều client truy cập file Tuy nhiên, điểm nóng phát triển GFS lần sử dụng hệ thống hàng đợi (batch-queue system): file thực thi ghi vào GFS dạng file chunk sau khởi chạy hàng trăm máy lúc Một vài chunkserver lưu trữ file thực thi bị tải hàng trăm yêu cầu đồng thời Cách để khắc phục vấn đề lưu trữ file thực thi với yếu tố chép cao làm cho hệ thống hàng đợi staggered thời gian bắt đầu ứng dụng Một giải pháp lâu dài tiềm cho phép client đọc liệu từ client khác tình 2.1.3 Siêu liệu (Metadata) Nút master lưu trữ ba loại siêu liệu chính: • Khơng gian tên file chunk • Phép ánh xạ từ file sang chunk • Vị trí cho chunk CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM Hình 2.2: Giao tiếp Metadata Client Master Tất siêu liệu lưu trữ nhớ nút master Hai loại (không gian tên ánh xạ file-to-chunk) trì lâu dài cách ghi nhật ký thay đổi vào nhật ký hoạt động (operation log) lưu trữ ổ đĩa cục master chép máy từ xa Việc sử dụng nhật ký cho phép cập nhật trạng thái master cách đơn giản, đáng tin cậy tránh không quán trường hợp master bị crash Nút master không lưu trữ thơng tin vị trí chunk cách lâu dài Thay vào đó, hỏi chunkserver chunk master khởi động chunkserver tham gia vào cụm a, Cấu Trúc Dữ Liệu Trong Bộ Nhớ Vì siêu liệu lưu trữ nhớ, hoạt động master diễn nhanh chóng Hơn nữa, master dễ dàng hiệu kiểm tra tồn trạng thái theo định kỳ Việc kiểm tra định kỳ sử dụng để thực dọn dẹp rác chunk (chunk garbage collection), chép lại (re-replication) chunkserver gặp cố di chuyển chunk để cân tải dung lượng đĩa chunkserver Một điểm đáng lo ngại tiềm ẩn cho cách tiếp cận sử dụng nhớ số lượng chunk dung lượng toàn hệ thống bị giới hạn dung lượng nhớ mà master sở hữu Tuy nhiên, hạn chế nghiêm trọng thực tế Master trì chưa đến 64 byte siêu liệu cho chunk 64 MB Hầu hết chunk đầy hầu hết file chứa nhiều chunk, chunk cuối điền phần Tương tự, liệu không gian tên file thường u cầu 64 byte cho file lưu trữ tên file cách gọn gàng cách sử dụng nén tiền tố (prefix compression) CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM Nếu cần thiết để hỗ trợ hệ thống file chí lớn hơn, chi phí thêm RAM cho master giá nhỏ để đổi lấy đơn giản, đáng tin cậy, hiệu suất tính linh hoạt có cách lưu trữ siêu liệu nhớ b, Vị trí Chunk Nút master khơng lưu trữ ghi vĩnh viễn chunkserver có chunk định Thay vào đó, đơn giản gửi yêu cầu thăm dò chunkserver để lấy thơng tin khởi động Master tự cập nhật sau kiểm sốt tất việc phân bổ chunk theo dõi trạng thái chunkserver thông điệp Heartbeat định kỳ So với việc cố gắng giữ thơng tin vị trí chunk cách lâu dài master, việc yêu cầu liệu từ chunkserver khởi động định kỳ sau đơn giản nhiều Điều giúp loại bỏ vấn đề đồng hóa master chunkserver chunkserver tham gia 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 định thiết kế nhận chunkserver có quyền định cuối chunk mà có khơng có đĩa riêng Việc cố gắng trì nhìn thống thơng tin master khơng cần thiết lỗi chunkserver khiến chunk biến đột ngột (ví dụ, ổ đĩa bị hỏng bị vơ hiệu hóa) người vận hành đổi tê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 siêu liệu quan trọng Đây thành phần trung tâm GFS Nó khơng ghi vĩnh viễn siêu liệu mà cịn đóng vai trị dòng thời gian logic xác định thứ tự hoạt động đồng thời Các file chunk, phiên chúng (xem Phần 4.5), xác định vĩnh viễn thời gian logic thời điểm chúng tạo Vì nhật ký hoạt động quan trọng nêni phải lưu trữ cách đáng tin cậy không hiển thị thay đổi cho client thay đổi siêu liệu ghi lại vĩnh viễn Ngược lại, việc toàn hệ thống file hoạt động client gần thân chunk xảy Do đó, cần phải chép nhật ký nhiều máy từ xa phản hồi hoạt động client sau ghi chép ghi nhật ký tương ứng vào đĩa cục từ xa Master gộp nhóm vài ghi nhật ký với trước ghi, giảm thiểu tác động việc ghi chép lên hiệu suất tổng thể hệ thống Master khôi phục trạng thái hệ thống file cách phát lại nhật ký hoạt CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM động Để giảm thiểu thời gian khởi động, cần phải giữ cho nhật ký nhỏ Master thực checkpoint trạng thái nhật ký vượt kích thước định, để phục hồi cách tải checkpoint từ đĩa cục phát lại số lượng ghi nhật ký hạn chế sau Checkpoint dạng B-tree nén, ánh xạ trực tiếp vào nhớ sử dụng cho việc tra cứu khơng gian tên mà khơng cần phân tích cú pháp thêm Điều giúp tăng tốc độ phục hồi cải thiện tính khả dụng Do việc tạo checkpoint chút thời gian, nên trạng thái nội master cấu trúc theo cách tạo checkpoint mà không làm chậm thay đổi đến Master chuyển sang file log tạo checkpoint luồng riêng Checkpoint bao gồm tất thay đổi trước chuyển đổi Nó tạo khoảng phút cho cụm có vài triệu file Khi hồn thành, ghi vào đĩa cục từ xa Phục hồi cần checkpoint hoàn chỉnh file log sau Các checkpoint file log cũ xóa tự do, nhiên nên giữ lại vài để đề phòng cố Lỗi q trình checkpointing khơng ảnh hưởng đến tính xác mã phục hồi phát bỏ qua checkpoint khơng hồn chỉnh 2.2 Các thành phần GFS Một nhóm máy tính tạo nên GFS Một cụm(cluster) nhóm máy tính kết nối Có thể có hàng trăm, chí hàng nghìn máy tính cluster Có ba thực thể bao gồm cluster GFS sau Hình 2.3: Các thực thể GFS CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM 2.2.1 GFS Clients (Users) Chúng chương trình ứng dụng máy tính sử dụng để yêu cầu tệp Yêu cầu thực để truy cập sửa đổi tệp có thêm tệp vào hệ thống 2.2.2 GFS Master Servers Nó đóng vai trị điều phối viên cluster Nó lưu giữ ghi hoạt động cluster nhật ký hoạt động Ngoài ra, cịn theo dõi liệu mơ tả chunks siêu liệu Vị trí chunks tệp tổng thể chúng thuộc tệp siêu liệu định tới máy master server Máy Master server thường không lưu trữ chunks thực tế mà lưu trữ tất siêu liệu liên kết với chunks, chẳng hạn bảng ánh xạ nhãn 64-bit tới vị trí chunks tệp mà chúng tạo thành (ánh xạ từ tệp đến chunks), vị trí chunks, trình đọc ghi vào chunk cụ thể để chép (thường điều hành máy master server) Tất siêu liệu máy Master server cập nhật định kỳ nhận cập nhật từ máy chunkserver 2.2.3 GFS Chunk Servers Đây chứa liệu GFS Chúng giữ khối tệp có kích thước 64 MB Máy chủ (master server) khơng nhận chunks từ chunk servers(máy chủ khối) Thay vào đó, họ trực tiếp giao cho khách hàng chunks mong muốn Để tăng độ tin cậy, chunk chép nhiều chunkserver vật lý, GFS tạo nhiều chunks lưu trữ chúng nhiều chunk servers khác để đảm bảo tính ổn định; mặc định ba sao, điều cấu hình Các tệp có nhu cầu cao có hệ số chép cao hơn, tệp mà ứng dụng khách sử dụng tối ưu hóa lưu trữ nghiêm ngặt chép ba lần - để đáp ứng sách dọn rác nhanh chóng Mỗi chunkserver máy tính chạy Linux phổ thơng điển hình thực thao tác máy chủ cấp người dùng Một chunkserver sử dụng máy khách với điều kiện đảm bảo hiệu năng.Các tập tin chia thành nhiều chunks có kích thước cố định Mỗi chunk (đoạn liệu) xác định chunk handle 64 bit biến đổi mà mang tính tồn cục, gán máy chủ (master) vào thời điểm tạo chunk Các chunkserver lưu trữ chunk đĩa cục file Linux đồng thời đọc ghi liệu chunk xác định chunk handle dải byte CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM Hình 2.4: Giao tiếp ứng dụng Chunk erver 2.3 Cơ chế hoạt động GFS 2.3.1 Quản lý Namespace Khóa • Master thực tất hoạt động namespace • Đưa định vị trí, tạo chunk (bản sao), điều phối hoạt động hệ thống để giữ cho chunk chép đầy đủ, cân đối tải tất chunk-server, thu hồi không gian lưu trữ khơng sử dụng • Cho phép nhiều hoạt động kích hoạt sử dụng khóa vùng namespace để đảm bảo việc hóa • Khơng phải cấu trúc liệu theo thư mục, khơng phải bí danh cho tệp thư mục, GFS mô namespace bảng tra cứu ánh xạ tên đường dẫn đầy đủ với metadata Với nén tiền tố, biểu diễn nhớ, nút namespace có khóa đọc-viết liên kết • Mỗi hoạt động master nhận tập khóa trước chạy Ví dụ, chế khóa ngăn khơng cho tạo tệp /home/user/foo /home/user chụp ảnh nhanh để /save/user: • Hoạt động chụp ảnh nhanh: khóa đọc /home /save, khóa viết /home/user /save/user • Tạo tệp: khóa đọc /home /home/user, khóa viết /home/user/foo • Khóa xung đột /home/user • Hai hoạt động hóa mực tất cố gắng nhận khóa xung đột /home/user CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM • Tạo tệp khơng u cầu khóa viết thư mục cha • Khóa đọc tên đủ để bảo vệ thư mục cha khỏi việc xóa Đặc tính tốt chế khóa cho phép biến đổi đồng thời thư mục Ví dụ, tạo nhiều tệp: tệp nhận khóa đọc tên thư mục khóa viết tên tệp • Các khóa đọc tên thư mục: ngăn chặn việc xóa, đổi tên, chụp ảnh nhanh • Khóa viết tên tệp: hóa nỗ lực để tạo tệp với tên hai lần 2.3.2 Đặt Bản • Hàng trăm chunk-server phân tán nhiều giá máy • Giao tiếp hai máy giá khác vượt qua nhiều chuyển mạch mạng Phân phối đa cấp đưa thách thức đặc biệt để phân phối liệu cho khả mở rộng, độ tin cậy khả dụng • Hai mục đích sách đặt chunk tối đa hóa độ tin cậy, độ khả dụng liệu việc sử dụng băng thơng mạng • Giải pháp: Phân tán chunk giá để đảm bảo số chunk tồn có sẵn giá tồn bị hỏng ngoại tuyến 2.3.3 Tạo, Sao chép lại, Cân lại • Bản chunk tạo với ba lý do: tạo chunk, chép lại cân lại • Tạo sao: – Đặt chunk-server với việc sử dụng không gian đĩa mức trung bình – Giới hạn số lượng tạo gần chunk-server – Phân tán chunk giá • Sao chép lại: số lượng có sẵn giảm xuống mục tiêu người dùng định khi: – Một chunk-server trở nên không khả dụng – Một số đĩa bị vơ hiệu hóa lỗi – Mục tiêu chép tăng lên • Cân lại: master cân lại định kỳ Nó kiểm tra phân phối di chuyển để có khơng gian đĩa cân tải tốt 10 CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM • Chính sách: máy chủ lấp đầy với chunk-server mới, không làm ngập, loại bỏ với khơng gian miễn phí mức trung bình (cân việc sử dụng không gian đĩa) 2.3.4 Thu gom • Sau tệp bị xóa, GFS khơng thu hồi khơng gian lưu trữ có sẵn Nó làm cách lười biếng trình thu gom rác định kỳ hai mức tệp chunk • Mục tiêu: đơn giản hóa đáng tin cậy • Cơ chế: – Khi tệp bị xóa, gốc ghi lại thao tác xóa – Thay lấy lại tài nguyên lập tức, tệp đổi tên thành tên ẩn + thời gian xóa – Trong trình quét định kỳ master, loại bỏ tệp ẩn (nếu tồn ngày), tên ẩn phục hồi trở lại bình thường – Khi loại bỏ khỏi namespace, metadata nhớ xóa – Trong trình quét định kỳ master , master xác định orphaned chunk (không thể truy cập từ tệp nào) metadata xóa 2.3.5 Phát Bản cũ • Bản chunk trở nên cũ chunk-server gặp cố bỏ lỡ biến đổi chunk tắt • Đối với chunk, master trì số phiên chunk để phân biệt cập nhật cũ • Tăng số phiên chunk thông báo cho cập nhật master cấp hợp đồng thuê chunk • Master loại bỏ cũ việc thu gom rác định kỳ 11 CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM 2.4 Cài đặt, thiết kế Google File System Hình 2.5: Thiết kế GFS 2.4.1 Giả định Khi thiết kế hệ thống tệp phù hợp với nhu cầu, cần phải đặt giả định để đảm bảo hệ thống đối phó với khó khăn cách tồn diện nhất, cụ thể sau: • Hệ thống xây dựng từ nhiều thành phần giá rẻ thường xuyên gặp cố Do đó, cần tự động giám sát, phát hiện, xử lý phục hồi sau lỗi thành phần thường xuyên • Hệ thống lưu trữ lượng nhỏ tập tin lớn với số lượng lên tới vài triệu tệp, tệp thường có kích thước 100 MB lớn Các tệp có dung lượng từ vài GB trường hợp phổ biến cần quản lý hiệu Các tệp nhỏ phải hỗ trợ không cần tối ưu hóa chúng • Khối lượng cơng việc chủ yếu bao gồm hai loại đọc: đọc theo luồng lớn đọc ngẫu nhiên nhỏ Trong đọc liệu luồng lớn, thao tác riêng lẻ thường đọc hàng trăm KB, phổ biến MB trở lên Các hoạt động liên tiếp từ máy khách thường đọc qua vùng liền kề tệp Một lần đọc ngẫu nhiên nhỏ thường đọc vài KB số vị trí tùy ý Các ứng dụng quan tâm đến hiệu suất thường theo nhóm xếp lần đọc nhỏ chúng để tiến triển ổn định tệp thay quay quay lại • Khối lượng cơng việc có nhiều thao tác ghi lớn, để thêm liệu vào tệp Kích thước hoạt động thơng thường tương tự kích thước để đọc 12 CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM Một ghi, tập tin sửa đổi lại Ghi nhỏ vị trí tùy ý tệp hỗ trợ không cần phải hiệu • Băng thơng ổn định cao quan trọng độ trễ thấp Hầu hết ứng dụng mục tiêu đặt ưu tiên xử lý liệu hàng loạt tốc độ cao, số có u cầu nghiêm ngặt thời gian phản hồi cho lần đọc ghi riêng lẻ 2.4.2 Giao diện GFS cung cấp giao diện hệ thống tệp quen thuộc, không triển khai API tiêu chuẩn POSIX Các tập tin xếp theo cấu trúc thư mục xác định đường dẫn với khả hỗ trợ thao tác thông thường để tạo, xóa, mở, đóng, đọc ghi tệp Hơn nữa, GFS có thao tác snapshot record append Snapshot tạo tệp thư mục với chi phí thấp Record append cho phép nhiều khách hàng đồng thời thêm liệu vào tệp đảm bảo tính độc lập phần bổ sung khách hàng Nó hữu ích cho việc triển khai kết hợp nhiều chiều hàng đợi nhà sản xuất người tiêu dùng mà nhiều khách hàng đồng thời thêm vào mà khơng cần khóa bổ sung 2.5 Ưu nhược điểm GFS 2.5.1 Ưu điểm • Khả mở rộng: GFS thiết kế để mở rộng dễ dàng để đáp ứng với lưu lượng liệu lớn số lượng yêu cầu I/O cao • Dữ liệu phân tán: Dữ liệu phân tán nhiều máy chủ, giúp cải thiện hiệu suất khả chịu lỗi hệ thống • Độ tin cậy cao: GFS thiết kế với khả tự động phục hồi Dữ liệu nhân nhiều máy chủ để đảm bảo an toàn sẵn sàng cao • Xử lý đọc/ghi lớn: GFS tối ưu hóa để đáp ứng yêu cầu đọc ghi lớn, phù hợp cho ứng dụng chia sẻ liệu lớn phân tán • Thích nghi với liệu lớn: GFS thiết kế để xử lý lưu trữ liệu lớn, chẳng hạn liệu web liệu từ ứng dụng phức tạp 2.5.2 Nhược điểm • Khả mở rộng giới hạn: Mặc dù GFS có khả mở rộng, có giới hạn đối mặt với thách thức phải xử lý lưu lượng liệu cực lớn • Độ trễ khơng thể tránh khỏi: Do liệu phân tán trình nhân bản, 13 CHƯƠNG CÁC ĐẶC ĐIỂM CỦA GOOGLE FILE SYSTEM xuất độ trễ trình truy cập liệu, đặc biệt trường hợp đọc liệu ghi • Khả mở rộng cho việc đọc chậm: GFS tối ưu hóa chủ yếu cho việc ghi liệu lớn, việc đọc chậm so với hệ thống tệp phân tán khác chuyên tối ưu hóa cho đọc • Khả tương thích hạn chế: GFS giải pháp tùy chỉnh phát triển riêng cho mơi trường Google, việc tích hợp với hệ thống khác địi hỏi cơng sức lớn • Phức tạp việc quản lý metadata: GFS có chế quản lý metadata phức tạp, đặc biệt số lượng tệp thư mục lớn, tạo áp lực lớn cho quản lý hệ thống Mặc dù GFS có nhược điểm, giải pháp mạnh mẽ cho ứng dụng đặc biệt cần xử lý liệu lớn đòi hỏi độ tin cậy hiệu suất cao 14