Đổi mới liên tục: Lược sử ngắn về block storage của AWS
(allthingsdistributed.com)Đổi mới liên tục: Lược sử ngắn về block storage của AWS
-
Giới thiệu
- Marc Olson đã làm việc trong nhóm Elastic Block Store (EBS) hơn 10 năm.
- EBS đã phát triển từ một dịch vụ block storage đơn giản thành một hệ thống lưu trữ mạng quy mô lớn xử lý hơn 140 nghìn tỷ thao tác mỗi ngày.
- Bài viết này chia sẻ quá trình tiến hóa của EBS và những bài học quan trọng.
-
Lịch sử ban đầu của EBS
- EBS được ra mắt vào ngày 20 tháng 8 năm 2008, bắt đầu từ một ý tưởng đơn giản là cung cấp block storage kết nối qua mạng cho các EC2 instance.
- Ban đầu hệ thống sử dụng ổ đĩa cứng dùng chung (HDD), còn hiện nay có thể cung cấp hàng trăm nghìn IOPS cho một EC2 instance duy nhất.
- Hiện tại, EBS xử lý hơn 140 nghìn tỷ thao tác mỗi ngày thông qua một fleet SSD phân tán.
-
Lý thuyết hàng đợi
- Cách các hệ thống máy tính tương tác với lưu trữ về cơ bản không thay đổi.
- CPU đưa yêu cầu vào hàng đợi, còn thiết bị lưu trữ lấy dữ liệu từ bộ nhớ CPU và ghi lên môi trường lưu trữ bền vững, hoặc làm ngược lại là truyền dữ liệu về bộ nhớ CPU.
- Lý thuyết hàng đợi đóng vai trò quan trọng trong việc hiểu quy trình này.
-
Chuyển đổi từ HDD sang SSD
- EBS ban đầu sử dụng HDD, nên hiệu năng bị giới hạn bởi các ràng buộc vật lý.
- Khi SSD xuất hiện, ngay cả các yêu cầu ngẫu nhiên cũng có thể được xử lý gần như nhanh bằng các yêu cầu tuần tự.
- Năm 2012, AWS đã ra mắt một loại storage server mới dùng SSD cùng với một loại volume EBS mới là Provisioned IOPS.
-
Đo lường và quản lý
- Vào năm 2012, EBS chỉ có telemetry ở mức cơ bản.
- Để cải thiện hiệu năng hệ thống, trước tiên cần xác định vấn đề nằm ở đâu rồi giải quyết chúng theo thứ tự ưu tiên.
- Nhóm đã xây dựng cách đo IO trên nhiều hệ thống con và phát hiện thay đổi thông qua giám sát liên tục.
-
Chia nhỏ tổ chức để chinh phục vấn đề
- Nhóm storage server của EBS được tái cấu trúc thành các nhóm nhỏ tập trung vào những lĩnh vực cụ thể như sao chép dữ liệu, độ bền dữ liệu, và snapshot hydration.
- Mỗi nhóm có thể lặp lại thay đổi và commit một cách độc lập.
-
Thách thức các giả định
- Nhóm phát hiện cấu hình mặc định của hypervisor Xen đang giới hạn hiệu năng.
- Họ sử dụng thẻ offload Nitro để chuyển các tác vụ xử lý mạng và lưu trữ sang phần cứng.
-
Thử nghiệm tinh chỉnh mạng
- Khi chuyển EBS sang Nitro, overhead của chính mạng lại tăng lên.
- Để cải thiện hiệu năng mạng, AWS đã phát triển giao thức SRD (Scalable Relatable Diagram) thay cho TCP.
-
Ràng buộc thúc đẩy đổi mới
- Để mang lợi ích của SSD đến cho mọi khách hàng, AWS đã bổ sung SSD mà không cần thay thế phần cứng hiện có.
- SSD được gắn thủ công vào server, các lượt ghi mới sẽ được lưu trên SSD rồi sau đó được flush bất đồng bộ xuống HDD.
-
Nhìn lại quá trình mở rộng hiệu năng
- Câu chuyện trưởng thành cá nhân: chuyển từ văn hóa công ty nhỏ sang một tổ chức quy mô lớn.
- Thông qua các phiên debug cùng đồng nghiệp, họ giải quyết vấn đề và nâng cao hiệu quả của đội ngũ.
-
Kết luận
- EBS đã phát triển không phải nhờ một thay đổi lớn duy nhất, mà thông qua một chuỗi cải tiến dần dần.
- Nhu cầu của khách hàng sẽ tiếp tục tăng, và đó là động lực để tiếp tục đổi mới và lặp lại.
# Tóm tắt của GN⁺
- Bài viết mang đến góc nhìn từ người trong cuộc về cách EBS của AWS đã tiến hóa.
- Bài viết đề cập đến nhiều thách thức kỹ thuật và cách giải quyết như lý thuyết hàng đợi, áp dụng SSD và tinh chỉnh mạng.
- Bài viết nhấn mạnh tầm quan trọng của việc đo lường và quản lý liên tục để cải thiện hiệu năng.
- Những sản phẩm có chức năng tương tự gồm có Google Cloud Persistent Disk và Microsoft Azure Disk Storage.
1 bình luận
Ý kiến trên Hacker News
Nếu quan tâm đến các hệ thống lớn thì nên đọc bài này
Để giải quyết vấn đề thì phải biết điều gì đang sai
Dự án lắp SSD vào máy chủ EBS năm 2013 là một trong những câu chuyện thú vị của AWS
Sự cố kéo dài khoảng 4 ngày của AWS là do EBS gây ra, và điều này đã làm lung lay niềm tin vào AWS
Reddit là một trong những người dùng EBS đầu tiên vào năm 2008
Việc thêm độ trễ ngẫu nhiên có tác dụng làm giảm độ trễ trung bình và cả các giá trị ngoại lệ
Làm việc tại các công ty Internet quy mô lớn mang lại nhiều bài học
Phần nói về việc tự tay lắp SSD vào mọi thiết bị EBS năm 2013 rất thú vị
Năm 2009, đã có một bài thuyết trình về nội bộ của Amazon S3
Ở giai đoạn đầu của cloud, người ta dùng phần cứng đa dụng, nhưng giờ đây dùng phần cứng chuyên biệt cho từng dịch vụ
Sơ đồ đầu tiên bị sai hoặc đã lỗi thời
Đang tìm cách tốt nhất để cung cấp một thư mục dataset 256GB nhanh cho các EC2 instance mới