The google file system

• Là một hệ thống quản lý tập tin phân tán (DFS) được phát triển bởi Google. • Được thiết kế để cung cấp khả năng truy xuất dữ liệu hiệu quả và tin cậy dựa trên việc sử dụng một hệ thống cluster lớn của các commodity hardware.

pdf32 trang | Chia sẻ: lylyngoc | Lượt xem: 2290 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu The google file system, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
THE GOOGLE FILE SYSTEM GVHD: TS. Hồ Bảo Quốc Nhóm học viên thực hiện: • Dương Hữu Thành – 1212035 • Phạm Ngọc Vân Anh – 1212001 • Nguyễn Thanh Tòng – 1212039 Nội dung • Giới thiệu về GFS. • Kiến trúc tổng quan. • Sự tương tác trong hệ thống. • Trách nhiệm của GFS-Master. GOOGLE FILE SYSTEM Giới thiệu về GFS • Là một hệ thống quản lý tập tin phân tán (DFS) được phát triển bởi Google. • Được thiết kế để cung cấp khả năng truy xuất dữ liệu hiệu quả và tin cậy dựa trên việc sử dụng một hệ thống cluster lớn của các commodity hardware. • Phiên bản mới nhất có tên là Colossus. (nguồn Giới thiệu về GFS (cont.) • Chỉ được sử dụng bởi Google. • Không phải là một sản phẩm open source. • Được xem như là một mô hình về DFS. KIẾN TRÚC TỔNG QUAN Các giả định (assumptions) • Tỷ lệ lỗi (failure rate) của các thành phần cao. • Số lượng và kích thước file lớn: ▫ Vài triệu file. ▫ Mỗi file > 100 MB • Phần lớn thao tác trên file là thêm vào cuối (append). • Large streaming read. Các interface • Create • Delete • Open • Close • Read • Write • Snapshot • RecordAppend Thết kế tổng quan • Mỗi file được chia ra và lưu trữ thành nhiều chunk. ▫ Mỗi chunk 64 MB. ▫ Mỗi chunk được nhân bản (replica) thành 3 phần, mỗi phần lưu trữ trên một chunk server. • Một master server, nhiều chunk server và nhiều client. ▫ Quản lý tập trung để đơn giản việc quản lý. • Không caching data. Kiến trúc Single master server • Đơn giản việc quản lý • Các vấn đề: ▫ Master failure? ▫ Nghẽn cổ chai. • Giải pháp ▫ Shadow master ▫ Tối thiểu hóa vai trò của master  Chỉ được dùng cho metadata.  Tăng kích thước chunk size.  Lease mechanism. Metadata • Tên file và chunk ▫ Lưu ở cả master và chunk server • Mapping giữ file và chunk ▫ Lưu ở cả master và chunk server • Vị trí của các chunk. ▫ Hỏi chunk server khi master start hoặc chunk server tham gia vào hệ thống. • Được load lên RAM (64byte/ chunk, mỗi chunk 64MB  640 TB cần ít hơn 640MB) ▫ Truy xuất nhanh và dễ dàng Metadata (cont.) • Operation log để log lại các thao thác chỉnh sửa metadata. ▫ Là metadata bền vững duy nhất được lưu ở master ▫ Lưu trữ trên local disk. ▫ Được sao lưu tại các shadow master. SỰ TƯƠNG TÁC TRONG HỆ THỐNG Thao tác thay đổi nội dung file (mutation) • Mutation = write hoặc là record append. ▫ Phải được thực hiện trên mọi replica. Lease • Được thiết kế để giảm sự tham gia của master vào các thao tác trên file. • Master chọn một trong các replica và replica được chọn trở thành primary replica. • Primary replica sẽ thay thế master để tương tác với client khi client yêu cầu một thao tác mutation. Read 1. Application phát sinh ra read request 2. GFS client phiên dịch request đó và gửi cho master. 3. Master trả về chunk handle và vị trí của một trong các replica cho GFS client Read (cont.) 4. Client sử dụng chunk handle và location để gửi request đến chunk server. 5. Chunk server gửi data về cho client. 6. Client chuyển data cho application. Write 1. Application phát sinh ra write request 2. GFS client dịch phiên dịch request đó và gửi cho master. 3. Master trả về chunk handle và vị trí của tất cả replica cho GFS client Write (cont.) 4. Client chuyển data cần được write đến tất cả các chunk server chứa replica. Data được lưu trong internal buffer của chunk server. Write (cont.) 5. Client gửi yêu cầu write data đến primary replica. 6. Primary replica chọn ra thứ tự tuần tự (serial order) các khối data trong buffer của nó và ghi vào chunk theo thứ tự đó. 7. Primary replica gửi thứ tự mà nó định ra trong bước 6 cho các secondary replica và yêu cầu chúng thực hiện thao tác write theo thự tự nhận được. Write (cont.) Write (cont.) 8. Secondary replica phản hồi lại cho primary. 9. Primary replica phản hồi lại cho client. Atomic Record Append • Append record một cách đồng thời có thể được tuần tự hóa. • Giải pháp: ▫ Multi producer – single consumer Atomic Record Append (cont.) Tương tự như write nhưng có một ít sự khác biệt. 1. Client chuyển data cần append đến tất cả các replica thuộc về chunk cuối cùng của file. 2. Primary xác định xem data cần append làm cho kích thước của chunk vượt quá giới hạn cho phép. Atomic Record Append (cont.) 3. Nếu chunk vượt quá giới hạn kích thước, Primary replica sẽ: - Chèn padding vào chunk. - Yêu cầu tất cả các secondary chèn padding vào chunk. - Hồi đáp lại cho client và yêu cầu client retry lại thao tác. 4. Ngược lại, Primary sẽ: - Append data. - Yêu các secondary append data. - Hồi đáp lại cho client. Fault Tolerance • High availability ▫ Fast recovery ▫ Chunk replication ▫ Shadow masters • Data integrity ▫ Checksum every 64KB block in each chunk TRÁCH NHIỆM CỦA GFS MASTER TRÁCH NHIỆM CỦA GFS MASTER • Lưu giữ metadata • Định kỳ liên lạc với chunk server. • Chunk creation, re-replication, rebalancing. • Thu dọn rác. Tài liệu tham khảo • The Google File System - Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung Q&A
Tài liệu liên quan