CHƯƠNG 2. CẤU TRÚC DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
2.2. Giải pháp cấu trúc lưu trữ dữ liệu
Phần mềm lưu trữ dữ liệu (SDS) là một chương trình máy tính quản lý tài nguyên và chức năng lưu trữ dữ liệu và không phụ thuộc vào phần cứng lưu trữ vật lý bên dưới.
Mọi người cho rằng bất kỳ sản phẩm lưu trữ dữ liệu nào cũng có thể được mô tả là do phần mềm định nghĩa, vì tất cả các sản phẩm lưu trữ đều yêu cầu phần mềm để quản lý phần cứng cơ bản và kiểm soát các tác vụ liên quan đến lưu trữ. Tuy nhiên, thuật ngữ tiếp thị lưu trữ do phần mềm xác định thường được kết hợp với các sản phẩm phần mềm được thiết kế để chạy trên phần cứng máy chủ hàng hóa với bộ xử lý Intel x86 và cho phép tiết kiệm chi phí trên mạng khu vực lưu trữ truyền thống (SAN) và các hệ thống lưu trữ gắn liền với mạng (NAS) kết hợp chặt chẽ giữa phần mềm và phần cứng.
Không giống như các hệ thống SAN và NAS nguyên khối, các sản phẩm lưu trữ được xác định bằng phần mềm cho phép người dùng nâng cấp phần mềm riêng biệt với phần cứng. Các đặc điểm chung của các sản phẩm SDS bao gồm khả năng tổng hợp tài nguyên lưu trữ, mở rộng quy mô hệ thống trên một cụm máy chủ, quản lý nhóm lưu trữ được chia sẻ và các dịch vụ lưu trữ thông qua một giao diện quản trị duy nhất và thiết lập các chính sách để kiểm soát các tính năng và chức năng lưu trữ.
Các yếu tố góp phần vào sự gia tăng các sản phẩm SDS bao gồm sự phát triển bùng nổ của dữ liệu phi cấu trúc, tạo ra nhu cầu lớn hơn đối với kiến trúc lưu trữ mở rộng; sự sẵn có của phần cứng máy chủ hiệu suất cao với bộ xử lý đa lõi; sự chấp nhận chung của ảo hóa trong máy chủ, máy tính để bàn, ứng dụng và mạng; và sự phổ biến của các công nghệ đám mây.
Các trường hợp sử dụng cho lưu trữ do phần mềm xác định khác nhau tùy theo loại sản phẩm. Ví dụ: các trường hợp sử dụng phổ biến cho SDS đối tượng và tệp mở rộng bao gồm các ứng dụng tạo ra lượng dữ liệu phi cấu trúc đáng kể, chẳng hạn như phân tích dữ liệu, hệ gen và internet vạn vật. Khối mở rộng quy mô SDS có thể nhắm mục tiêu khối lượng công việc hiệu suất cao hơn chẳng hạn như cơ sở dữ liệu. Nhiều loại SDS có thể hấp dẫn đối với môi trường DevOps yêu cầu cung cấp bộ nhớ linh hoạt cho các ứng dụng mới. Lưu trữ do phần mềm xác định là một phần của xu hướng ngành lớn hơn, bao gồm mạng do phần mềm xác định (SDN), cơ sở hạ tầng do phần mềm xác định và trung tâm dữ liệu do phần mềm xác định. Có 3 kiến trúc cốt lõi mà hệ thống lưu trữ dữ liệu sử dụng để cấu trúc dữ liệu được lưu trữ.
a. Lưu trữ tệp
Các giải pháp lưu trữ dữ liệu dựa trên tệp là một cách tiếp cận cũ để lưu trữ dữ liệu chỉ đơn giản là đặt tên tệp, gắn thẻ chúng bằng siêu dữ liệu, sau đó sắp xếp các tệp được gắn thẻ vào các thư mục trong thư mục và thư mục con. Các tệp này tập trung, có thể truy cập và được đặt tên bằng cách sử dụng các quy ước đặt tên tiêu chuẩn để thúc đẩy tổ chức dễ dàng. Các giải pháp lưu trữ dựa trên tệp cũng có thể tương tác với các công cụ lưu trữ dữ liệu NAS để chia sẻ tệp cục bộ thuận tiện.
Các công cụ lưu trữ dữ liệu dựa trên tệp cho phép chia sẻ tệp một cách đơn giản, lưu trữ cục bộ với các tùy chọn khả năng mở rộng và sử dụng các công nghệ ổ đĩa khác nhau để bảo vệ dữ liệu kinh doanh quan trọng tất cả đều nằm trong ngân sách có thể quản lý được. Lỗi chính của lưu trữ dựa trên tệp là hệ thống phân cấp của nó, xử lý tốt lượng dữ liệu nhỏ nhưng không thể cung cấp hỗ trợ tìm kiếm có thể mở rộng. Do đó khi càng tích lũy nhiều tệp, việc tìm kiếm thông tin cụ thể càng trở nên khó khăn hơn.
b. Lưu trữ khối
Hệ thống quản lý lưu trữ dữ liệu khối thu thập khối lượng lưu trữ thô, chứa các tệp được chia thành các phần dữ liệu có kích thước bằng nhau. Các khối lượng này được quản lý bởi một nền tảng hoạt động dựa trên máy chủ, có nghĩa là chúng hoạt động
tương tự như một hệ điều hành riêng lẻ do đó, các giải pháp lưu trữ khối thường sử dụng các công cụ của bên thứ ba để quản lý và sao lưu dữ liệu quan trọng. Không giống như các hệ thống lưu trữ dựa trên tệp, phần mềm quản lý lưu trữ dữ liệu khối tự động phân bổ dữ liệu và chỉ định vị trí của nó trong khối.
Các khối lượng được tạo bằng phần mềm lưu trữ khối hoạt động giống như ổ cứng, điều này làm cho giải pháp lưu trữ dữ liệu này trở nên hữu ích rộng rãi. Bạn có thể bật lưu trữ khối trên cơ sở dữ liệu và máy chủ email của mình (ví dụ: lưu trữ khối trên thực tế là đối với Microsoft Exchange) và kết hợp nhiều đĩa thành khối lượng độc lập để xây dựng nền tảng cho việc sắp xếp RAID. Vì lý do này, kiến trúc lưu trữ khối thường được triển khai với các hệ thống lưu trữ dữ liệu SAN.
Thuận lợi và khó khăn của lưu trữ khối
Một trong những ưu điểm đáng chú ý nhất của lưu trữ khối là khả năng truy cập và lấy dữ liệu có cấu trúc từ cơ sở dữ liệu một cách hiệu quả, thường qua kết nối mạng vùng lưu trữ (SAN) sử dụng các loại giao thức khác nhau như iSCSI và Fibre Channel, Direct Attached Storage (DAS ). Lưu trữ khối rất tốt cho dữ liệu có cấu trúc do cách các giải pháp lưu trữ cũ thực hiện việc nhớ lại siêu dữ liệu của chúng về vị trí của một khối nhất định trên ổ cứng, sử dụng cái được gọi là ghi nhật ký. Hệ thống ghi nhật ký theo dõi tất cả dữ liệu đã từng được ghi theo thời gian. Vì vậy, từ góc độ cơ sở dữ liệu có cấu trúc, nếu đang đọc và truy cập dữ liệu theo cách đó thì rất nhanh.
Bởi vì lưu trữ khối sử dụng hệ thống ghi nhật ký theo thứ tự thời gian này, bổ sung ngày càng nhiều dữ liệu theo thời gian và từng khối dữ liệu riêng lẻ có thể sống độc lập trên nhiều môi trường, các yêu cầu dữ liệu được phục vụ nhanh chóng bằng cách truy xuất và tập hợp lại các khối từ đường dẫn hiệu quả nhất có thể. Mặc dù lưu trữ khối thể hiện một phương pháp hiệu quả và đáng tin cậy để quản lý dữ liệu có cấu trúc, nhưng đáng tiếc là nó ít khả dụng hơn rất nhiều để quản lý dữ liệu phi cấu trúc. Xem xét lưu trữ khối rất hạn chế về khả năng xử lý siêu dữ liệu, các ứng dụng được xây dựng xung quanh dữ liệu phi cấu trúc vốn dĩ sẽ phải vật lộn với các hoạt động dựa vào siêu dữ liệu bao gồm các chức năng tìm kiếm và truy xuất cơ bản.
c. Lưu trữ đối tượng (Object storage –OS)
Lưu trữ đối tượng, còn được gọi là lưu trữ dựa trên đối tượng, là một kiến trúc lưu trữ dữ liệu máy tính được thiết kế để xử lý một lượng lớn dữ liệu phi cấu trúc. Không giống như các kiến trúc khác, nó chỉ định dữ liệu là các đơn vị riêng biệt, đi kèm với siêu dữ liệu và một số nhận dạng duy nhất có thể được sử dụng để định vị và truy cập từng đơn vị dữ liệu.
Các đơn vị, hoặc các đối tượng có thể được lưu trữ tại chỗ, nhưng thường được lưu trữ trên đám mây, giúp chúng có thể dễ dàng truy cập từ mọi nơi. Do khả năng mở rộng quy mô của bộ lưu trữ đối tượng, có một số giới hạn đối với khả năng mở rộng của
nó và việc lưu trữ khối lượng dữ liệu lớn sẽ ít tốn kém hơn so với các tùy chọn khác, chẳng hạn như lưu trữ khối.
Phần lớn dữ liệu ngày nay không có cấu trúc: email, tệp phương tiện và âm thanh, trang web, dữ liệu cảm biến và các loại nội dung kỹ thuật số khác không dễ dàng phù hợp với cơ sở dữ liệu truyền thống. Do đó, việc tìm kiếm các cách hiệu quả và hợp lý để lưu trữ và quản lý nó đã trở thành một vấn đề nan giải. Càng ngày, lưu trữ đối tượng càng trở thành phương pháp ưa thích để lưu trữ nội dung tĩnh, cung cấp dữ liệu và các bản sao lưu.
Lưu trữ đối tượng là một kiến trúc lưu trữ dữ liệu để lưu trữ dữ liệu phi cấu trúc, chia dữ liệu thành các đơn vị, đối tượng và lưu trữ chúng trong một môi trường dữ liệu, siêu dữ liệu và một số nhận dạng duy nhất và các ứng dụng có thể sử dụng để dễ dàng truy cập và truy xuất.
Với tính năng lưu trữ đối tượng, các khối dữ liệu của tệp được lưu giữ cùng nhau như một đối tượng, cùng với siêu dữ liệu có liên quan và số nhận dạng tùy chỉnh, và được đặt trong môi trường dữ liệu phẳng được gọi là nhóm lưu trữ.
Khi muốn truy cập dữ liệu, hệ thống lưu trữ đối tượng sẽ sử dụng mã định danh duy nhất và siêu dữ liệu để tìm đối tượng, chẳng hạn như tệp hình ảnh hoặc âm thanh.
Có thể tùy chỉnh siêu dữ liệu, cho phép thêm nhiều ngữ cảnh hữu ích cho các mục đích khác, chẳng hạn như truy xuất để phân tích dữ liệu.
Có thể định vị và truy cập các đối tượng bằng cách sử dụng RESTful API, HTTP và HTTPS để truy vấn siêu dữ liệu đối tượng. Vì các đối tượng được lưu trữ trong một nhóm lưu trữ toàn cầu nên việc xác định chính xác dữ liệu sẽ nhanh chóng và dễ dàng.
Thêm vào đó, môi trường phẳng cho phép mở rộng quy mô nhanh chóng, ngay cả đối với tải trọng petabyte hoặc exabyte. Các nhóm lưu trữ có thể được trải rộng trên nhiều thiết bị lưu trữ đối tượng và vị trí địa lý, cho phép mở rộng quy mô không giới hạn. Do đó chỉ cần thêm nhiều thiết bị lưu trữ hơn vào nhóm khi dữ liệu phát triển.
Những lợi ích của lưu trữ đối tượng, như tính linh hoạt và khả năng mở rộng của nó, đã làm cho nó trở thành một lựa chọn lý tưởng để quản lý dữ liệu phi cấu trúc trong cơ sở hạ tầng đám mây. Vậy, lưu trữ đối tượng trong đám mây là gì? Nó lưu trữ dựa trên đối tượng như một dịch vụ đám mây theo yêu cầu. Trên thực tế, lưu trữ đối tượng đám mây là định dạng lưu trữ chính của hầu hết các nhà cung cấp dịch vụ đám mây lớn.
Hình 2. 5: Lưu trữ đối tượng Lưu trữ đối tượng so với lưu trữ tệp so với lưu trữ khối
Theo thời gian, nhu cầu lưu trữ dữ liệu của thế giới đã phát triển với sự ra đời của Internet và danh sách các loại và nguồn dữ liệu ngày càng mở rộng. Lưu trữ tệp truyền thống và lưu trữ khối không phù hợp để xử lý lượng dữ liệu khổng lồ đang được tạo, đặc biệt là dữ liệu phi cấu trúc không được tạo ra để phù hợp với các phương pháp lưu trữ dữ liệu có cấu trúc.
• Lưu trữ tệp: Lưu trữ tệp lưu trữ và sắp xếp dữ liệu thành các thư mục, tương tự như các tệp vật lý mà có thể lưu trữ trong hệ thống lưu trữ giấy trong văn phòng.
Nếu cần thông tin từ một tệp, thì cần biết phòng, tủ, ngăn kéo và thư mục nào chứa tài liệu cụ thể đó. Cấu trúc lưu trữ phân cấp tương tự này được sử dụng để lưu trữ tệp, nơi tệp được đặt tên, gắn thẻ siêu dữ liệu và sau đó được đặt trong các thư mục. Để tìm một phần dữ liệu, cần biết đường dẫn chính xác để tìm nó.
Theo thời gian, việc tìm kiếm và truy xuất tệp dữ liệu có thể trở nên tốn thời gian khi số lượng tệp tăng lên. Mặc dù khả năng mở rộng hạn chế hơn, nhưng đây là một cách đơn giản để lưu trữ một lượng nhỏ của bất kỳ loại dữ liệu nào và giúp nhiều người dùng có thể truy cập cùng một lúc.
• Lưu trữ khối: Lưu trữ khối cải thiện hiệu suất của lưu trữ tệp, chia nhỏ tệp thành các khối riêng biệt và lưu trữ chúng riêng biệt. Hệ thống lưu trữ khối sẽ chỉ định một mã định danh duy nhất cho từng đoạn dữ liệu thô, sau đó có thể được sử dụng để tập hợp chúng lại thành tệp hoàn chỉnh khi bạn cần truy cập. Lưu trữ khối không yêu cầu một đường dẫn duy nhất đến dữ liệu, vì vậy có thể lưu trữ ở bất kỳ đâu thuận tiện nhất mà vẫn truy xuất nhanh chóng khi cần. Lưu trữ khối hoạt động tốt cho các tổ chức làm việc với lượng lớn dữ liệu giao dịch hoặc các ứng dụng quan trọng cần độ trễ tối thiểu và hiệu suất nhất quán. Tuy nhiên, nó có thể tốn kém, không cung cấp khả năng siêu dữ liệu và yêu cầu hệ điều hành để truy cập các khối.
• Lưu trữ đối tượng: Lưu trữ đối tượng, như đã thảo luận trước đó, lưu tệp trong môi trường dữ liệu phẳng hoặc nhóm lưu trữ, dưới dạng một đối tượng độc lập chứa tất cả dữ liệu, số nhận dạng duy nhất và siêu dữ liệu chi tiết chứa thông tin về dữ liệu, quyền, chính sách và các khoản dự phòng khác. Lưu trữ đối tượng hoạt động tốt nhất đối với lưu trữ tĩnh, đặc biệt là đối với dữ liệu phi cấu trúc, nơi ghi dữ liệu một lần nhưng có thể cần đọc nhiều lần. Mặc dù lưu trữ đối tượng loại bỏ nhu cầu về thư mục, thư mục và tổ chức phân cấp phức tạp khác, nhưng đây không phải là giải pháp tốt cho dữ liệu động thay đổi liên tục vì bạn sẽ cần phải viết lại toàn bộ đối tượng để sửa đổi nó. Trong một số trường hợp, lưu trữ tệp và lưu trữ khối vẫn có thể phù hợp với nhu cầu của bạn tùy thuộc vào yêu cầu về tốc độ và hiệu suất của bạn.
Lợi ích của lưu trữ đối tượng
• Khả năng mở rộng lớn: Dễ dàng mở rộng quy mô kiến trúc phẳng của lưu trữ đối tượng mà không bị các hạn chế như lưu trữ tệp hoặc khối. Kích thước lưu trữ đối tượng về cơ bản là vô hạn, vì vậy dữ liệu có thể mở rộng đến exabyte chỉ bằng cách thêm thiết bị mới.
• Giảm độ phức tạp: Lưu trữ đối tượng không có thư mục, loại bỏ phần lớn sự phức tạp đi kèm với hệ thống phân cấp. Việc thiếu các cây hoặc phân vùng phức tạp làm cho việc truy xuất tệp dễ dàng hơn vì bạn không cần biết vị trí chính xác.
• Khả năng tìm kiếm: Siêu dữ liệu là một phần của các đối tượng, giúp bạn dễ dàng tìm kiếm và điều hướng mà không cần ứng dụng riêng biệt. Nó cũng linh hoạt hơn và có thể tùy chỉnh. Bạn có thể gắn thẻ các đối tượng bằng các thuộc tính và thông tin, chẳng hạn như mức tiêu thụ, chi phí và các chính sách để xóa, lưu giữ và phân cấp tự động.
• Khả năng phục hồi: Lưu trữ đối tượng có thể tự động sao chép dữ liệu và lưu trữ trên nhiều thiết bị và vị trí địa lý. Điều này có thể giúp bảo vệ khỏi sự cố mất
điện, bảo vệ chống mất dữ liệu và giúp hỗ trợ các chiến lược khôi phục sau thảm họa.
• Hiệu quả chi phí: Lưu trữ đối tượng được tạo ra có tính đến chi phí, cung cấp khả năng lưu trữ cho một lượng lớn dữ liệu với giá thấp hơn so với các hệ thống dựa trên tệp và khối. Với lưu trữ đối tượng, bạn chỉ phải trả cho dung lượng bạn cần, cho phép bạn kiểm soát chi phí ngay cả đối với số lượng lớn dữ liệu.
• Hỗ trợ cho API S3: Trở lại khi các giải pháp lưu trữ đối tượng được đưa ra, các giao diện là độc quyền. Rất ít nhà phát triển ứng dụng đã viết cho các giao diện này. Sau đó, Amazon đã tạo ra Dịch vụ lưu trữ đơn giản hay còn gọi là “S3”. Họ cũng tạo ra một giao diện mới, được gọi là “S3 API”. Giao diện API S3 kể từ đó đã trở thành một tiêu chuẩn thực tế để truyền dữ liệu lưu trữ đối tượng. Sự tồn tại của một tiêu chuẩn trên thực tế đã thay đổi cuộc chơi. Giờ đây, các nhà phát triển ứng dụng tương thích với S3 có một thị trường ổn định và phát triển cho các ứng dụng của họ. Và các nhà cung cấp dịch vụ và các nhà cung cấp lưu trữ tương thích với S3 như Cloudian có lượng người dùng ngày càng tăng triển khai các ứng dụng đó. Sự kết hợp này tạo tiền đề cho thị trường tăng trưởng nhanh chóng.
Những khó khăn của lưu trữ dữ liệu đối tượng
Lưu trữ đối tượng có thể hoạt động tốt đối với dữ liệu phi cấu trúc trong đó dữ liệu được ghi một lần và đọc một lần (hoặc nhiều lần). Nội dung trực tuyến tĩnh, sao lưu dữ liệu, lưu trữ hình ảnh, video, hình ảnh và tệp nhạc có thể được lưu trữ dưới dạng đối tượng. Cơ sở dữ liệu trong môi trường lưu trữ đối tượng doanh nghiệp thường có các tập dữ liệu không có cấu trúc, điều này cho thấy dữ liệu sẽ không yêu cầu một số lượng lớn các lần ghi hoặc cập nhật gia tăng.
Một trong những thách thức với lưu trữ đối tượng là nó không lý tưởng cho dữ liệu giao dịch và hơn nữa, lưu trữ đối tượng không được tạo ra để thay thế quyền truy cập và chia sẻ tệp NAS. Có lẽ vấn đề lớn nhất với lưu trữ đối tượng là nó không hỗ trợ các cơ chế khóa và chia sẻ cần thiết để duy trì một phiên bản cập nhật chính xác, duy nhất của tệp.
Để bắt kịp với tốc độ tăng trưởng dữ liệu theo cấp số nhân, các giải pháp lưu trữ đối tượng kế thừa yêu cầu các doanh nghiệp phải mua một bộ chứa dung lượng lớn, chẳng hạn như trung tâm dữ liệu tại chỗ, nhưng điều đó không tiết lộ bất kỳ điều gì về bản thân dữ liệu. Do đó, một số doanh nghiệp sử dụng phần mềm mua sẵn sẽ giúp hiểu dữ liệu, nhưng những phần mềm đó có xu hướng rất đắt và chúng không mở rộng hiệu quả trên thực tế, chúng sẽ tan rã khi đạt đến một tỷ tệp hoặc một petabyte dung lượng lưu trữ.
Sự kết hợp lưu trữ đối tượng và phần mềm lưu trữ dữ liệu cung cấp một giải pháp hiệu quả cho các ứng dụng dữ liệu nhất định. Chúng có các đặc điểm:
• Mô hình đơn giản hóa để quản lý tăng trưởng dữ liệu