• 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.
32 trang |
Chia sẻ: lylyngoc | Lượt xem: 2290 | Lượt tải: 1
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