1. Tổng quan
Storage (lưu trữ) là quá trình lưu trữ và quản lý dữ liệu trên các thiết bị lưu trữ như đĩa cứng, ổ flash, băng, đĩa quang, hoặc các dịch vụ lưu trữ đám mây. Trong lĩnh vực công nghệ thông tin, lưu trữ dữ liệu được chia thành nhiều loại, ví dụ như block storage, object storage, file system storage, tape storage, và nhiều loại khác nhau. Các giải pháp lưu trữ hiện tại bao gồm:
- Block storage: Đây là loại lưu trữ dữ liệu được chia thành các khối cố định có kích thước cố định. Mỗi khối được xác định bởi một địa chỉ độc lập, cho phép truy cập ngẫu nhiên đến các khối dữ liệu trong lưu trữ. Các giải pháp block storage phổ biến bao gồm SAN (Storage Area Network), iSCSI, FC (Fibre Channel).
- Object storage: Đây là một giải pháp lưu trữ dữ liệu được phân tán, các đối tượng dữ liệu được lưu trữ trên các nút phân tán trong hệ thống đám mây. Mỗi đối tượng được xác định bởi một định danh duy nhất và metadata mô tả nội dung của đối tượng đó. Các giải pháp object storage phổ biến bao gồm Amazon S3, Microsoft Azure Blob Storage và OpenStack Swift.
- File system storage: Đây là một hệ thống lưu trữ được cấu trúc bao gồm các tập tin và thư mục, cung cấp cho người dùng quyền truy cập và quản lý các tập tin dữ liệu trên lưu trữ. Các giải pháp file system storage phổ biến bao gồm các hệ thống tập tin như NTFS, FAT, EXT4 và HFS+.
2. Giải pháp lưu trữ Block storage.
Block storage có thể được hiểu như một phân vùng lưu trữ được cấp riêng cho một ứng dụng hoặc một máy ảo. Nó cung cấp khả năng lưu trữ dữ liệu độc lập với các máy ảo khác, giúp đảm bảo tính bảo mật và độ tin cậy của hệ thống lưu trữ.
Block storage giống như việc chia sách thành các trang giấy riêng lẻ và đánh số thứ tự cho từng trang. Mỗi trang sẽ có một địa chỉ riêng biệt và có thể được lưu trữ tại nhiều vị trí khác nhau trong thư viện. Khi cần truy cập vào sách, bạn sẽ tham chiếu đến số trang cụ thể, sau đó thư viện sẽ tìm ra trang đó và đưa nó đến bạn.
Tương tự, Block storage chia dữ liệu thành các khối (block) nhỏ có kích thước cố định và đánh số thứ tự cho từng khối. Mỗi khối được lưu trữ tại một vị trí cụ thể trên ổ đĩa hoặc mạng lưu trữ. Khi cần truy cập vào dữ liệu, hệ thống sẽ tham chiếu đến số khối cụ thể và tìm ra khối đó để đọc hoặc ghi dữ liệu.
Khác với sách thật, các khối dữ liệu trong Block storage có thể được sao chép và phân tán trên nhiều ổ đĩa hoặc server khác nhau để tăng khả năng chịu lỗi và tính khả dụng.
Tuy nhiên, Block storage không chỉ là một phân vùng lưu trữ cấp riêng mà nó còn là một giải pháp lưu trữ có khả năng mở rộng và tính khả dụng cao. Điều này cho phép các phân vùng Block storage có thể được kết nối và phân phối giữa các máy chủ, hệ thống lưu trữ và mạng lưới khác nhau, giúp tối ưu hóa sử dụng tài nguyên lưu trữ và đảm bảo tính sẵn sàng cao của hệ thống.
Một số đặc tính của giải pháp lưu trữ Block storage bao gồm:
- Tính linh hoạt: Các khối dữ liệu có thể được phân phối trên nhiều thiết bị lưu trữ khác nhau, cho phép các ứng dụng truy cập dữ liệu một cách linh hoạt.
- Tính dễ mở rộng: Hệ thống lưu trữ Block storage có thể được mở rộng để lưu trữ lượng dữ liệu lớn hơn khi cần thiết.
- Tính khả dụng cao: Với tính năng RAID (Redundant Array of Independent Disks), dữ liệu sẽ được phân tán trên nhiều thiết bị lưu trữ khác nhau để đảm bảo tính khả dụng cao cho dữ liệu trong trường hợp một ổ đĩa bị lỗi hoặc hỏng.
Các cách kết nối vào Block storage bao gồm:
- SCSI: Giao diện SCSI (Small Computer System Interface) là một trong những giao diện phổ biến nhất để kết nối đĩa cứng và các thiết bị lưu trữ khác vào một hệ thống máy tính. Giao diện này được sử dụng để kết nối Block storage vào máy chủ thông qua các cổng SCSI hoặc các giao diện khác như SAS hoặc Fibre Channel.
- iSCSI: iSCSI (Internet Small Computer System Interface) là một giao thức mạng cho phép truy cập Block storage thông qua mạng Ethernet. Khi sử dụng iSCSI, máy chủ truy cập Block storage giống như nó đang truy cập một ổ đĩa cục bộ, tuy nhiên dữ liệu được truyền qua mạng LAN hoặc WAN.
- NVMe: NVMe (Non-Volatile Memory Express) là một giao diện lưu trữ được thiết kế để tối ưu hiệu suất cho ổ đĩa SSD (Solid State Drive). Giao diện này cho phép Block storage được kết nối trực tiếp vào hệ thống máy tính thông qua các cổng PCIe hoặc U.2.
- Fibre Channel: Fibre Channel là một giao diện mạng đặc biệt được sử dụng để kết nối Block storage vào các hệ thống máy tính thông qua mạng SAN (Storage Area Network). Giao diện này sử dụng các cáp sợi quang để truyền dữ liệu với tốc độ cao và độ tin cậy cao.
- FCoE: FCoE (Fibre Channel over Ethernet) là một giao thức mạng cho phép truy cập Block storage thông qua mạng Ethernet. FCoE kết hợp các lợi ích của giao diện Fibre Channel với khả năng truy cập mạng của Ethernet.
- SAS: SAS (Serial Attached SCSI) là một giao diện để kết nối Block storage vào các hệ thống máy tính thông qua cổng SAS. Giao diện này cho phép truyền dữ liệu với tốc độ cao và độ tin cậy cao, và thường được sử dụng trong các hệ thống máy chủ doanh nghiệp.
Ví dụ trong các giải pháp ảo hóa, khi ta muốn cài đặt các máy ảo, ta thường cần một khối lưu trữ riêng để lưu trữ các ổ đĩa ảo của máy ảo đó. Điều này thường được thực hiện bằng cách sử dụng các giải pháp Block storage để cung cấp không gian lưu trữ cho các máy ảo.
Thay vì sử dụng các đĩa cứng truyền thống trực tiếp kết nối với máy chủ vật lý, các giải pháp ảo hóa thường sử dụng các khối lưu trữ đặc biệt được gọi là “disk image” để tạo các ổ đĩa ảo cho máy ảo. Các ổ đĩa ảo này sau đó được gán cho máy ảo và hoạt động giống như một ổ đĩa vật lý trên máy chủ vật lý.
Do đó, ta có thể sử dụng các giải pháp Block storage để cung cấp không gian lưu trữ cho các ổ đĩa ảo của máy ảo trong các giải pháp ảo hóa. Tuy nhiên, các giải pháp này còn được sử dụng cho nhiều mục đích khác nhau, bao gồm lưu trữ cơ sở dữ liệu, các ứng dụng doanh nghiệp và các ứng dụng xử lý dữ liệu lớn.
Block storage không chỉ được sử dụng để cung cấp không gian lưu trữ cho các máy ảo trong các giải pháp ảo hóa. Nó còn được sử dụng cho nhiều mục đích khác nhau, bao gồm:
- Lưu trữ cơ sở dữ liệu: Block storage cung cấp khả năng lưu trữ dữ liệu có tính khả dụng cao, tốc độ truy cập nhanh và khả năng mở rộng linh hoạt, làm cho nó trở thành một giải pháp lưu trữ phù hợp cho các cơ sở dữ liệu yêu cầu tính khả dụng cao, độ trễ thấp và khả năng mở rộng.
- Các ứng dụng doanh nghiệp: Block storage cũng được sử dụng để lưu trữ các ứng dụng doanh nghiệp, chẳng hạn như các hệ thống ERP, CRM, SCM và các ứng dụng kinh doanh khác. Nó cung cấp khả năng lưu trữ dữ liệu có tính khả dụng cao, độ trễ thấp và khả năng mở rộng, giúp đảm bảo sự hoạt động liên tục và hiệu quả của các ứng dụng doanh nghiệp quan trọng.
- Các ứng dụng xử lý dữ liệu lớn: Block storage cung cấp khả năng lưu trữ dữ liệu có tính khả dụng cao và khả năng mở rộng, làm cho nó trở thành một giải pháp lưu trữ phù hợp cho các ứng dụng xử lý dữ liệu lớn. Nó cho phép các dữ liệu được lưu trữ và truy cập một cách hiệu quả để xử lý các tác vụ tính toán phức tạp, bao gồm phân tích dữ liệu, học máy và khai thác dữ liệu.
- Lưu trữ tập tin chia sẻ: Block storage có thể được sử dụng để cung cấp không gian lưu trữ cho các hệ thống tập tin chia sẻ, cho phép nhiều người dùng truy cập và lưu trữ các tập tin trên một nền tảng lưu trữ chung. Nó cung cấp tính khả dụng cao và tốc độ truy cập nhanh, đảm bảo rằng các tập tin có thể được truy cập và sử dụng một cách hiệu quả bởi nhiều người dùng cùng một lúc.
3. Giải pháp lưu trữ Object storage
Object storage là một giải pháp lưu trữ dữ liệu phi cấu trúc, dựa trên kiến trúc lưu trữ đối tượng (object). Để giải thích Object storage liên tưởng đến thư viện sách, ta có thể xem thư viện sách như một tập hợp các đối tượng (object) lưu trữ các tài liệu khác nhau.
Trong thư viện, mỗi tài liệu sẽ có một định danh (ID) riêng biệt và được lưu trữ dưới dạng các đối tượng (object) riêng lẻ. Mỗi đối tượng này có thể chứa nhiều thông tin khác nhau như tiêu đề, tác giả, nội dung, hình ảnh, âm thanh, video, v.v. Để truy cập vào một tài liệu cụ thể, ta sẽ tham chiếu đến ID của tài liệu đó và hệ thống sẽ tìm ra các đối tượng (object) liên quan để trả về cho người dùng.
Tương tự, trong Object storage, mỗi tệp hoặc dữ liệu sẽ được lưu trữ dưới dạng một đối tượng (object) với một định danh (ID) riêng biệt. Mỗi đối tượng này có thể chứa nhiều thông tin khác nhau như tên tệp, kích thước, loại tệp, thời gian tạo/sửa đổi, v.v. Để truy cập vào dữ liệu cụ thể, ta sẽ tham chiếu đến ID của đối tượng đó và hệ thống sẽ tìm ra đối tượng (object) liên quan để trả về cho người dùng.
Các đối tượng (object) trong Object storage được lưu trữ trên các máy chủ khác nhau và có thể được phân tán trên nhiều vị trí khác nhau để tăng tính khả dụng và độ bền cho hệ thống. Ngoài ra, Object storage còn hỗ trợ việc sao lưu và phục hồi dữ liệu tự động, cho phép khôi phục dữ liệu nhanh chóng trong trường hợp xảy ra sự cố.
Một số đặc tính của giải pháp lưu trữ Object storage bao gồm:
- Tính linh hoạt: Vì các đối tượng được lưu trữ độc lập, chúng có thể được phân phối trên nhiều thiết bị lưu trữ khác nhau và được truy cập từ bất kỳ đâu trên mạng.
- Tính dễ mở rộng: Hệ thống lưu trữ Object storage có thể được mở rộng để lưu trữ lượng dữ liệu lớn hơn khi cần thiết.
- Tính bảo mật: Hệ thống lưu trữ Object storage cung cấp tính năng bảo mật đáng tin cậy, bao gồm cấp phép truy cập và mã hóa dữ liệu.
Các cách kết nối vào Object storage bao gồm:
- RESTful API: RESTful API là một giao thức truy cập dữ liệu thông qua HTTP và cung cấp các phương thức CRUD (Create, Read, Update, Delete) cho việc truy cập và quản lý đối tượng trên Object storage. RESTful API được sử dụng phổ biến trong các ứng dụng web và các ứng dụng đám mây.
- CLI (Command Line Interface): CLI là một giao diện dòng lệnh cho phép người dùng truy cập và quản lý đối tượng trên Object storage thông qua các lệnh CLI. CLI thường được sử dụng để tự động hóa các tác vụ hoặc để thực hiện các tác vụ quản lý đối tượng trên Object storage từ xa.
- SDK (Software Development Kit): SDK cung cấp các thư viện phát triển ứng dụng cho các ngôn ngữ lập trình khác nhau để truy cập và quản lý đối tượng trên Object storage. Với SDK, các lập trình viên có thể phát triển các ứng dụng truy cập đến Object storage trên các nền tảng khác nhau.
- NFS (Network File System): NFS là một giao thức cho phép người dùng truy cập vào dữ liệu trên Object storage như một tệp tin thông qua mạng. NFS thường được sử dụng cho các ứng dụng có tính đọc/ghi dữ liệu cao như lưu trữ file hoặc cơ sở dữ liệu.
- S3-compatible API: Nhiều nền tảng Object storage hiện nay cung cấp S3-compatible API để cho phép các ứng dụng sử dụng các thư viện AWS SDK truy cập và quản lý đối tượng trên Object storage.
Một số ví dụ về việc sử dụng Object storage trong doanh nghiệp bao gồm:
- Lưu trữ dữ liệu web và tài liệu kỹ thuật: Object storage được sử dụng để lưu trữ các tệp HTML, CSS, JavaScript, các tệp hình ảnh, tài liệu kỹ thuật, biểu mẫu và nội dung web khác. Object storage cung cấp khả năng mở rộng và tính khả dụng cao, giúp cho các trang web hoạt động mượt mà và có thể chịu được lượng truy cập lớn.
- Lưu trữ dữ liệu video và hình ảnh: Object storage cung cấp một giải pháp lưu trữ dữ liệu video và hình ảnh hiệu quả cho các doanh nghiệp như truyền thông, quảng cáo, giải trí. Object storage cho phép lưu trữ, xử lý và phân phối dữ liệu video và hình ảnh theo cách dễ dàng, với khả năng mở rộng và tính khả dụng cao.
- Lưu trữ dữ liệu nhạy cảm: Object storage cung cấp khả năng bảo mật và bảo vệ dữ liệu cho các doanh nghiệp. Với tính năng mã hóa dữ liệu và quản lý truy cập nâng cao, Object storage có thể được sử dụng để lưu trữ các tài liệu nhạy cảm như thông tin khách hàng, thông tin tài chính hoặc thông tin bí mật của doanh nghiệp.
- Lưu trữ dữ liệu IoT: Object storage có thể được sử dụng để lưu trữ dữ liệu thu thập từ các thiết bị IoT như cảm biến, camera an ninh, máy đo. Object storage cung cấp khả năng lưu trữ và quản lý các tệp dữ liệu phức tạp với khả năng mở rộng và tính khả dụng cao, giúp cho các doanh nghiệp có thể phân tích và sử dụng dữ liệu IoT để cải thiện hoạt động và tối ưu hóa quy trình công việc.
4. Giải pháp lưu trữ File system storage
File system storage có thể được liên tưởng đến việc lưu trữ sách trong một thư viện với các kệ đựng sách, tương tự như các tập tin được lưu trữ trong các thư mục trên hệ thống tập tin. Các tập tin có thể được đặt trong các thư mục con hoặc thư mục cha của chúng.
Các thư viện sách sử dụng một hệ thống phân cấp để lưu trữ sách và các tài liệu liên quan. Tương tự, hệ thống tập tin sử dụng một cây thư mục phân cấp để lưu trữ các tập tin. Bạn có thể tạo các thư mục con và chứa các tập tin bên trong chúng, hoặc đặt các tập tin trực tiếp trong thư mục cha.
Các tập tin trong hệ thống tập tin được định danh bằng tên tập tin duy nhất, giống như các cuốn sách được đánh số thứ tự và định danh bằng tên sách. Mỗi tập tin trong hệ thống tập tin có thể được đặt các quyền truy cập khác nhau tùy thuộc vào người dùng và nhóm của họ, tương tự như việc quy định các quyền mượn sách cho từng độc giả.
Với hệ thống tập tin, các tập tin có thể được lưu trữ trên nhiều đĩa khác nhau, giống như các cuốn sách được lưu trữ trên nhiều kệ sách khác nhau trong cùng một thư viện hoặc trong các thư viện khác nhau. Hệ thống tập tin cũng cung cấp các công cụ để sao lưu và phục hồi các tập tin quan trọng, giống như việc sao lưu các sách quan trọng trong một thư viện.
Vì vậy, File system storage có thể được hiểu như một hệ thống lưu trữ dữ liệu theo cấu trúc phân cấp, giống như cách các thư viện sách được tổ chức để lưu trữ các tài liệu.
Các đặc tính của giải pháp lưu trữ File system storage bao gồm:
- Tính đơn giản: Người dùng có thể truy cập vào các tệp tin và thư mục theo cách thông thường, giống như trên máy tính cá nhân.
- Tính linh hoạt: Các hệ thống lưu trữ File system storage có thể được mở rộng khi cần thiết để lưu trữ dữ liệu lớn hơn.
- Tính hiệu quả: Giải pháp này cung cấp tốc độ truy cập dữ liệu cao hơn so với giải pháp lưu trữ Object storage.
Giải pháp lưu trữ File system storage thường được sử dụng cho các ứng dụng yêu cầu tính khả dụng và độ trễ thấp, chẳng hạn như hệ thống tệp tin và máy chủ Web. Tuy nhiên, khi cần lưu trữ dữ liệu lớn, giải pháp lưu trữ Object storage có thể là sự lựa chọn tốt hơn.
Các cách kết nối vào File system storage bao gồm:
- Network File System (NFS): NFS là một giao thức dùng để chia sẻ tệp tin và thư mục giữa các máy tính trên mạng. Để kết nối vào một File system storage thông qua NFS, bạn cần cấu hình NFS server trên máy chủ lưu trữ và sau đó kết nối từ máy khách bằng cách sử dụng địa chỉ IP hoặc tên miền của máy chủ.
- Common Internet File System (CIFS): CIFS là một giao thức tương tự như NFS, nhưng thường được sử dụng trên mạng Microsoft Windows. Để kết nối vào một File system storage thông qua CIFS, bạn cần cấu hình CIFS server trên máy chủ lưu trữ và sau đó kết nối từ máy khách bằng cách sử dụng địa chỉ IP hoặc tên miền của máy chủ.
- iSCSI (Internet Small Computer System Interface): iSCSI là một giao thức cho phép truyền tải SCSI commands qua mạng TCP/IP. Khi sử dụng iSCSI, bạn có thể kết nối vào một ổ đĩa ảo được lưu trữ trên một máy chủ lưu trữ từ một máy tính khác trên mạng.
- Fibre Channel (FC): FC là một công nghệ kết nối mạng dùng cho truyền tải dữ liệu giữa máy tính và thiết bị lưu trữ. Để kết nối vào một File system storage thông qua FC, bạn cần sử dụng một cáp kết nối FC giữa máy tính và thiết bị lưu trữ, và sau đó cấu hình FC adapter trên máy tính để nhận diện thiết bị lưu trữ.
- Direct Attached Storage (DAS): DAS là một giải pháp lưu trữ dữ liệu mà ổ đĩa được kết nối trực tiếp vào máy tính thông qua cổng USB, SATA hoặc SAS. Để kết nối vào một File system storage thông qua DAS, bạn cần kết nối ổ đĩa vào máy tính và sau đó cấu hình ổ đĩa để nhận diện như một phân vùng lưu trữ.
Một ví dụ về sử dụng File system storage trong doanh nghiệp có thể là việc triển khai một hệ thống lưu trữ tập tin chung cho toàn bộ nhân viên. Hệ thống này sẽ cung cấp cho mỗi người dùng một thư mục cá nhân để lưu trữ các tài liệu, tài liệu thường xuyên được chia sẻ với các nhân viên khác trong công ty và được quản lý bởi một quản trị viên hệ thống.
Khi một người dùng tải lên hoặc tải xuống tài liệu, dữ liệu sẽ được lưu trữ trên File system storage và có thể được truy cập từ bất kỳ máy tính nào kết nối với mạng nội bộ của công ty. Việc triển khai một hệ thống lưu trữ tập tin chung như vậy sẽ giúp cho việc chia sẻ thông tin giữa các bộ phận và nhân viên trong công ty dễ dàng hơn, tăng tính hiệu quả và giảm thời gian tìm kiếm thông tin. Ngoài ra, việc triển khai một hệ thống lưu trữ tập tin chung cũng giúp cho việc quản lý dữ liệu trở nên dễ dàng hơn, bảo đảm tính toàn vẹn và an ninh của các tài liệu quan trọng.
5. Ưu điểm và nhược điểm của 3 giải pháp Storage trên.
- Block storage:Ưu điểm:
- Tốc độ truy xuất nhanh, phù hợp với các ứng dụng đòi hỏi tốc độ cao.
- Cho phép quản lý dữ liệu linh hoạt, tùy chỉnh các tính năng như snapshot, clone, replication, và backup.
- Tính khả dụng cao, có khả năng mở rộng tốt và hỗ trợ hầu hết các hệ thống ảo hóa.
- Tính linh hoạt thấp, không thể lưu trữ và quản lý dữ liệu phi cấu trúc.
- Yêu cầu kỹ thuật cao để cài đặt và quản lý.
- Giá thành đắt hơn so với các giải pháp khác.
- Object storage:Ưu điểm:
- Có khả năng lưu trữ và quản lý dữ liệu phi cấu trúc, phù hợp với các ứng dụng đòi hỏi lưu trữ lớn.
- Tính khả dụng cao, có khả năng mở rộng tốt và đáp ứng được nhu cầu lưu trữ của các doanh nghiệp.
- Giá thành thấp hơn so với Block storage.
- Tốc độ truy xuất chậm hơn so với Block storage, không phù hợp với các ứng dụng đòi hỏi tốc độ cao.
- Không hỗ trợ các tính năng tùy chỉnh như snapshot, clone, replication, và backup.
- File system storage:Ưu điểm:
- Tính linh hoạt và khả năng mở rộng tốt, phù hợp với các ứng dụng đòi hỏi lưu trữ dữ liệu tập tin và các hệ thống tệp.
- Cho phép truy cập dữ liệu nhanh chóng và dễ dàng.
- Giá thành thấp hơn so với Block storage.
- Yêu cầu quản lý dữ liệu phức tạp hơn so với Object storage và Block storage.
- Không phù hợp cho các ứng dụng đòi hỏi tốc độ truy xuất cao.