System designers have long sought to improve the performance of file systems, which
have proved critical to the overall performance of an exceedingly broad class of applications.
The scientific and high-performance computing communities in particular have driven advances
in the performance and scalability of distributed storage systems, typically predicting more
general purpose needs by a few years. Traditional solutions, exemplified by NFS [72], provide a
straightforward model in which a server exports a file system hierarchy that clients can map into
their local name space. Although widely used, the centralization inherent in the client/server
model has proven a significant obstacle to scalable performance.
More recent distributed file systems have adopted architectures based on object-based
storage, in which conventional hard disks are replaced with intelligent object storage devices
(OSDs) which combine a CPU, network interface, and local cache with an underlying disk or
RAID [14, 30, 31, 104, 107]. OSDs replace the traditional block-level interface with one in
which clients can read or write byte ranges to much larger (and often variably sized) named
1
objects, distributing low-level block allocation decisions to the devices themselves. Clients
typically interact with a metadata server (MDS) to perform metadata operations (open, rename),
while communicating directly with OSDs to perform file I/O (reads and writes), significantly
improving overall scalability.
Systems adopting this model continue to suffer from scalability limitations due to
little or no distribution of the metadata workload. Continued reliance on traditional file system
principles like allocation lists and inode tables and a reluctance to delegate intelligence to the
OSDs have further limited scalability and performance, and increased the cost of reliability.
I have developed a prototype for Ceph [100], a distributed file system that provides
excellent performance, reliability, and scalability. The architecture is based on the assumption
that systems at the petabyte scale are inherently dynamic: large systems are inevitably built
incrementally, node failures are the norm rather than the exception, and the quality and character
of workloads are constantly shifting over time.
Ceph decouples data and metadata operations by eliminating file allocation tables
and replacing them with a novel generating function. This allows Ceph to leverage the intelligence
present in OSDs to distribute the complexity surrounding data access, update serialization,
replication and reliability, failure detection, and recovery. Ceph utilizes an adaptive
distributed metadata cluster architecture that streamlines common metadata operations while
dramatically improving the scalability of metadata access, and with it, the scalability of the
entire system. I discuss the goals and workload assumptions motivating choices in the design
of the architecture, analyze their impact on system scalability, performance, and reliability, and
relate experiences in implementing a functional system prototype.
Thiết kế hệ thống dài đã tìm cách để cải thiện hiệu suất của hệ thống tập tin, màđã chứng minh rất quan trọng cho hiệu suất tổng thể của một lớp học cực rộng các ứng dụng.Các cộng đồng khoa học và hiệu suất cao tính toán đặc biệt đã thúc đẩy tiến bộtrong hiệu suất và khả năng mở rộng hệ thống phân phối, thường dự đoán nhiều hơn nữamục đích chung các nhu cầu của một vài năm. Giải pháp truyền thống, exemplified bởi NFS [72], cung cấp mộtMô hình đơn giản, trong đó có một máy chủ xuất một hệ thống phân cấp hệ thống tập tin mà khách hàng có thể ánh xạ vàokhông gian tên địa phương của họ. Mặc dù sử dụng rộng rãi, tập trung vốn có trong máy khách/máy chủMô hình đã chứng minh một trở ngại đáng kể đến khả năng mở rộng hoạt động.Hệ thống tệp phân bố gần đây đã thông qua kiến trúc dựa trên đối tượng dựa trênlưu trữ, trong đó thông thường các đĩa cứng được thay thế bằng thiết bị lưu trữ các đối tượng thông minh(OSDs) mà kết hợp một CPU, mạng lưới giao diện và đệm ẩn cục bộ với một đĩa cơ bản hoặcRAID [14, 30, 31, 104, 107]. OSDs thay thế giao diện cấp khối truyền thống bằng một trongkhách hàng mà có thể đọc hoặc viết byte phạm vi lớn hơn nhiều (và có kích thước thường variably) đặt tên1các đối tượng, phân phối các quyết định phân bổ cấp thấp khối với các thiết bị của mình. Khách hàngthông thường tương tác với một máy chủ siêu dữ liệu (MDS) để thực hiện hoạt động siêu dữ liệu (mở, đổi tên),trong khi giao tiếp trực tiếp với OSDs để thực hiện tệp I/O (lần đọc và viết), đáng kểcải thiện tổng thể khả năng mở rộng.Hệ thống áp dụng mô hình này tiếp tục bị giới hạn khả năng mở rộng dophân phối ít hoặc không có siêu dữ liệu khối lượng công việc. Tiếp tục phụ thuộc vào hệ thống tập tin truyền thốngnguyên tắc như danh sách phân bổ và inode bảng và miễn cưỡng đại biểu tình báo để cácOSDs tiếp tục có giới hạn khả năng mở rộng và hiệu suất, và tăng chi phí của độ tin cậy.Tôi đã phát triển một mẫu thử nghiệm cho Ceph [100], một hệ thống tệp phân tán cung cấphiệu suất tuyệt vời, độ tin cậy và khả năng mở rộng. Kiến trúc được dựa trên giả địnhCác hệ thống ở quy mô petabyte là vốn đã năng động: Hệ thống lớn chắc chắn sẽ được xây dựngtừng bước, nút thất bại là chuẩn mực chứ không phải là một ngoại lệ, và chất lượng và nhân vậtcủa khối lượng công việc được liên tục thay đổi theo thời gian.CEPH decouples dữ liệu và siêu dữ liệu hoạt động bằng cách loại bỏ tập tin bảng biểu phân bổvà thay thế chúng với một cuốn tiểu thuyết tạo ra chức năng. Điều này cho phép Ceph để tận dụng các tình báotrình bày trong OSDs để phân phối các phức tạp xung quanh truy cập dữ liệu, Cập Nhật tuần tự,nhân rộng và độ tin cậy, phát hiện thất bại và phục hồi. CEPH sử dụng một adaptivesiêu dữ liệu phân bố cụm kiến trúc streamlines hoạt động siêu dữ liệu phổ biến trong khicải thiện đáng kể khả năng mở rộng siêu dữ liệu truy cập, và với nó, khả năng mở rộng của cáctoàn bộ hệ thống. Tôi thảo luận về các mục tiêu và giả định khối lượng công việc thúc đẩy sự lựa chọn trong thiết kếkiến trúc, phân tích tác động của hệ thống khả năng mở rộng, hiệu suất và độ tin cậy, vàliên quan những kinh nghiệm trong việc thực hiện một mẫu thử nghiệm chức năng hệ thống.
đang được dịch, vui lòng đợi..
Thiết kế hệ thống từ lâu đã tìm cách cải thiện hiệu suất của hệ thống tập tin, mà
đã chứng minh quan trọng đối với hiệu suất tổng thể của một lớp cực rộng các ứng dụng.
Các cộng đồng khoa học máy tính và hiệu suất cao nói riêng đã thúc đẩy tiến bộ
trong việc thực hiện và khả năng mở rộng dung lượng lưu trữ phân phối hệ thống, điển hình là dự đoán nhiều hơn
nhu cầu mục đích chung bởi một vài năm. Các giải pháp truyền thống, được minh chứng bằng NFS [72], cung cấp một
mô hình đơn giản trong đó một máy chủ xuất khẩu một hệ thống phân cấp tập tin mà khách hàng có thể ánh xạ vào
không gian tên địa phương của họ. Mặc dù sử dụng rộng rãi, sự tập trung vốn có trong các khách hàng / máy chủ
mô hình đã được chứng minh là một trở ngại đáng kể cho hiệu năng ổn định.
Nhiều hệ thống tập tin phân phối gần đây đã thông qua kiến trúc dựa trên dựa trên đối tượng
lưu trữ, trong đó đĩa cứng thông thường được thay thế bằng các thiết bị lưu trữ đối tượng thông minh
( OSDs) mà kết hợp một CPU, giao diện mạng và bộ nhớ cache của địa phương với một đĩa cơ bản hoặc
RAID [14, 30, 31, 104, 107]. OSDs thay thế giao diện khối cấp truyền thống với một trong
đó khách hàng có thể đọc hoặc viết byte dao để lớn hơn nhiều (và thường variably cỡ) có tên là
1
đối tượng, phân phối các quyết định phân bổ khối cấp thấp cho các thiết bị tự. Khách hàng
thường tương tác với một máy chủ siêu dữ liệu (MDS) để thực hiện các hoạt động siêu dữ liệu (mở, đổi tên),
trong khi giao tiếp trực tiếp với OSDs để thực hiện các tập tin I / O (đọc và viết), đáng kể
cải thiện khả năng mở rộng tổng thể.
Hệ thống áp dụng mô hình này tiếp tục bị hạn chế khả năng mở rộng do
ít hoặc không có phân phối khối lượng công việc siêu dữ liệu. Sự phụ thuộc liên tục trên hệ thống tập tin truyền thống
nguyên tắc như danh sách phân bổ và bảng inode và sự miễn cưỡng ủy tình báo để các
OSDs đã tiếp tục hạn chế khả năng mở rộng và hiệu suất, và tăng chi phí về độ tin cậy.
Tôi đã phát triển một nguyên mẫu cho Ceph [100], một tập tin phân phối hệ thống cung cấp
tuyệt vời hiệu suất, độ tin cậy và khả năng mở rộng. Cấu trúc này dựa trên giả định
rằng hệ thống ở quy mô petabyte vốn đã năng động: hệ thống lớn đều không tránh khỏi được xây dựng
từng bước, thất bại nút là các chỉ tiêu chứ không phải là ngoại lệ, và chất lượng và nhân vật
. Khối lượng công việc được liên tục thay đổi theo thời gian
Ceph tách riêng dữ liệu và các hoạt động siêu dữ liệu bằng cách loại bỏ các bảng phân bổ tập tin
và thay thế chúng bằng một chức năng tạo ra cuốn tiểu thuyết. Điều này cho phép Ceph để tận dụng sự thông minh
có mặt tại OSDs phân phối phức tạp xung quanh truy cập dữ liệu, cập nhật serialization,
nhân rộng và độ tin cậy, phát hiện thất bại, và phục hồi. Ceph sử dụng một thích nghi
kiến trúc phân tán chùm siêu dữ liệu mà sắp xếp hợp lý hoạt động siêu dữ liệu phổ biến trong khi
cải thiện đáng kể khả năng mở rộng tiếp cận siêu dữ liệu, và cùng với nó, khả năng mở rộng của
toàn bộ hệ thống. Tôi thảo luận về các mục tiêu và giả định khối lượng công việc thúc đẩy sự lựa chọn trong các thiết kế
của kiến trúc, phân tích tác động của chúng trên hệ thống khả năng mở rộng, hiệu suất và độ tin cậy, và
những kinh nghiệm trong việc thực hiện một nguyên mẫu hệ thống chức năng.
đang được dịch, vui lòng đợi..