NHANH CHÓNG VP trên bộ lưu trữ Unity: cách thức hoạt động

Hôm nay chúng ta sẽ nói về một công nghệ thú vị được triển khai trong hệ thống lưu trữ Unity / Unity XT - FAST VP. Nếu bạn lần đầu tiên nghe nói về Unity, thì bạn có thể sử dụng liên kết ở cuối bài viết để làm quen với các đặc điểm của hệ thống. Tôi đã làm việc tại FAST VP trong hơn một năm trong nhóm dự án Dell EMC. Hôm nay tôi muốn nói chi tiết hơn về công nghệ này và tiết lộ một số chi tiết về việc triển khai nó. Tất nhiên, chỉ những gì được phép tiết lộ. Nếu bạn quan tâm đến vấn đề lưu trữ dữ liệu hiệu quả hoặc đơn giản là chưa hiểu đầy đủ về tài liệu thì bài viết này chắc chắn sẽ hữu ích và thú vị.

NHANH CHÓNG VP trên bộ lưu trữ Unity: cách thức hoạt động

Tôi sẽ cho bạn biết ngay những gì sẽ không có trong tài liệu. Sẽ không có việc tìm kiếm đối thủ cạnh tranh và so sánh với họ. Tôi cũng không có ý định nói về các công nghệ tương tự từ nguồn mở, bởi vì người đọc tò mò đã biết về chúng. Và tất nhiên là tôi sẽ không quảng cáo bất cứ điều gì.

phân tầng lưu trữ. Mục đích và mục tiêu của FAST VP

FAST VP là viết tắt của Phân tầng lưu trữ hoàn toàn tự động cho nhóm ảo. Là khó khăn? Không có gì, chúng tôi sẽ tìm ra nó. Phân tầng là một cách tổ chức lưu trữ dữ liệu, trong đó có một số cấp (tầng) nơi dữ liệu này được lưu trữ. Mỗi cái đều có những đặc điểm riêng. Điều quan trọng nhất: hiệu suất, khối lượng và giá cả của việc lưu trữ một đơn vị thông tin. Tất nhiên, giữa họ có một mối quan hệ.

Một tính năng quan trọng của phân tầng là quyền truy cập vào dữ liệu được cung cấp thống nhất bất kể mức lưu trữ hiện tại là bao nhiêu và kích thước của nhóm bằng tổng kích thước của các tài nguyên có trong đó. Đây là điểm khác biệt so với bộ đệm: kích thước của bộ đệm không được thêm vào tổng lượng tài nguyên (nhóm trong trường hợp này) và dữ liệu bộ đệm sao chép một số phần dữ liệu từ phương tiện chính (hoặc sẽ trùng lặp nếu dữ liệu từ bộ đệm vẫn chưa được ghi). Ngoài ra, việc phân phối dữ liệu theo cấp độ cũng bị ẩn khỏi người dùng. Nghĩa là, anh ta không biết chính xác dữ liệu nào được đặt ở mỗi cấp độ, mặc dù anh ta có thể tác động đến điều này một cách gián tiếp bằng cách thiết lập các chính sách (về chúng sau này).

Bây giờ chúng ta hãy xem xét các tính năng của việc triển khai phân tầng lưu trữ trong Unity. Trong Unity, có 3 cấp độ hoặc tầng:

  • Hiệu suất cực cao (SSD)
  • Hiệu suất (SAS HDD 10k/15k RPM)
  • Dung lượng (HDD NL-SAS 7200 vòng/phút)

Chúng được trình bày theo thứ tự giảm dần về hiệu suất và giá cả. Hiệu suất cực cao chỉ bao gồm Ổ đĩa thể rắn (SSD). Hai tầng còn lại chứa các ổ đĩa từ khác nhau về tốc độ quay và theo đó là hiệu suất.

Các phương tiện lưu trữ cùng cấp độ và cùng kích thước được kết hợp thành một mảng RAID, tạo thành nhóm RAID (nhóm RAID, viết tắt là RG); bạn có thể đọc về các cấp độ RAID có sẵn và được đề xuất trong tài liệu chính thức. Từ các nhóm RAID thuộc một hoặc nhiều cấp độ, các nhóm lưu trữ được hình thành, từ đó không gian trống sẽ được phân bổ. Và không gian nhóm đã được phân bổ cho các hệ thống tệp và LUN.

NHANH CHÓNG VP trên bộ lưu trữ Unity: cách thức hoạt động

Tại sao tôi cần Tiering?

Tóm lại và trừu tượng: để đạt được nhiều kết quả hơn với lượng nguồn lực ít nhất. Cụ thể hơn, kết quả thường được hiểu là một tập hợp các đặc điểm của hệ thống lưu trữ - tốc độ và thời gian truy cập, chi phí lưu trữ, v.v. Nguồn lực tối thiểu có nghĩa là chi phí ít nhất: tiền bạc, năng lượng, v.v. FAST VP chỉ thực hiện các cơ chế phân phối lại dữ liệu giữa các cấp độ khác nhau trong hệ thống lưu trữ Unity/Unity XT. Nếu bạn tin tôi, bạn có thể bỏ qua đoạn tiếp theo. Phần còn lại, tôi sẽ kể cho bạn nghe thêm một chút.

Bằng cách phân cấp dữ liệu hợp lý, bạn có thể tiết kiệm tổng chi phí lưu trữ bằng cách giảm tốc độ truy cập vào một số thông tin hiếm khi được sử dụng và cải thiện hiệu suất bằng cách di chuyển dữ liệu thường xuyên truy cập sang phương tiện nhanh hơn. Ở đây ai đó có thể phản đối rằng ngay cả khi không phân cấp, một quản trị viên bình thường vẫn biết nên đặt dữ liệu nào ở đâu, những đặc điểm nào của hệ thống lưu trữ phù hợp với nhiệm vụ của anh ta, v.v. Chắc chắn điều này đúng, nhưng việc phân phối dữ liệu "thủ công" có những hạn chế:

  • đòi hỏi thời gian và sự quan tâm của người quản trị;
  • không phải lúc nào cũng có thể "định hình lại" tài nguyên lưu trữ trong các điều kiện thay đổi;
  • một lợi thế quan trọng biến mất: quyền truy cập thống nhất vào các tài nguyên ở các cấp độ lưu trữ khác nhau.

Để giúp quản trị viên lưu trữ bớt lo lắng hơn về bảo mật công việc, tôi sẽ nói thêm rằng việc lập kế hoạch nguồn lực có thẩm quyền cũng cần thiết ở đây. Bây giờ, nhiệm vụ phân cấp đã được phác thảo ngắn gọn, hãy xem bạn có thể mong đợi điều gì từ FAST VP. Đây là lúc quay lại định nghĩa. Hai từ đầu tiên - Hoàn toàn tự động - dịch theo nghĩa đen là "hoàn toàn tự động" và có nghĩa là việc phân bổ các cấp độ diễn ra tự động. Chà, Virtual Pool là một nhóm dữ liệu bao gồm các tài nguyên từ các cấp lưu trữ khác nhau. Đây là những gì nó trông giống như:

NHANH CHÓNG VP trên bộ lưu trữ Unity: cách thức hoạt động

Nhìn về phía trước, tôi sẽ nói rằng FAST VP chỉ di chuyển dữ liệu trong một nhóm duy nhất chứ không phải giữa nhiều nhóm.

Nhiệm vụ được giải quyết bởi FAST VP

Trước tiên hãy nói chuyện một cách trừu tượng. Chúng tôi có một nhóm và một số cơ chế có thể phân phối lại dữ liệu trong nhóm này. Hãy nhớ rằng nhiệm vụ của chúng ta là đạt được năng suất tối đa, chúng ta hãy tự hỏi: có thể đạt được mục tiêu đó bằng những cách nào? Có thể có một vài trong số chúng, và ở đây FAST VP có thứ gì đó để cung cấp cho người dùng, vì công nghệ này không chỉ đơn thuần là phân tầng lưu trữ. Dưới đây là một số cách FAST VP có thể tăng hiệu suất nhóm:

  • Phân phối dữ liệu trên các loại đĩa, cấp độ khác nhau
  • Phân phối dữ liệu giữa các đĩa cùng loại
  • Phân phối dữ liệu khi mở rộng nhóm

Trước khi xem xét cách thực hiện các nhiệm vụ này, chúng ta cần biết một số thông tin cần thiết về cách thức hoạt động của FAST VP. FAST VP hoạt động với các khối có kích thước nhất định - 256 megabyte. Đây là "khối" dữ liệu liền kề nhỏ nhất có thể được di chuyển. Trong tài liệu, nó được gọi như sau: slice. Theo quan điểm của FAST VP, tất cả các nhóm RAID đều bao gồm một tập hợp các "mảnh" như vậy. Theo đó, tất cả số liệu thống kê I/O đều được tích lũy cho các khối dữ liệu đó. Tại sao kích thước khối này được chọn và nó có bị giảm đi không? Khối này khá lớn, nhưng đây là sự thỏa hiệp giữa mức độ chi tiết của dữ liệu (kích thước khối nhỏ hơn - phân phối chính xác hơn) và tài nguyên máy tính có sẵn: với các hạn chế nghiêm trọng hiện có đối với RAM và số lượng khối lớn, dữ liệu thống kê có thể mất quá nhiều và số lượng phép tính sẽ tăng lên tương ứng.

Cách FAST VP đặt dữ liệu vào nhóm. Chính trị gia

Để kiểm soát vị trí của dữ liệu trong nhóm có bật FAST VP, có các chính sách sau:

  • Cấp cao nhất hiện có
  • Cấp tự động
  • Bắt đầu ở mức Cao rồi đến Cấp tự động (mặc định)
  • Cấp thấp nhất hiện có

Chúng ảnh hưởng đến cả việc phân bổ khối ban đầu (dữ liệu được ghi lần đầu tiên) và việc phân bổ lại tiếp theo. Khi dữ liệu đã được đặt trên đĩa, việc phân bổ lại sẽ được bắt đầu theo lịch trình hoặc thủ công.

Cấp cao nhất hiện có cố gắng đặt khối mới ở cấp hiệu suất cao nhất. Nếu không có đủ dung lượng trên đó thì dữ liệu tiếp theo sẽ được chuyển sang mức hiệu suất cao hơn (nếu có dung lượng hoặc lấn át dữ liệu khác). Cấp tự động đặt dữ liệu mới vào các cấp khác nhau dựa trên dung lượng có sẵn và phân phối lại dữ liệu đó dựa trên nhu cầu và dung lượng trống. Bắt đầu Cao rồi Tự động Cấp bậc là chính sách mặc định và cũng được khuyến nghị. Ban đầu hoạt động như Cấp cao nhất hiện có, sau đó di chuyển dữ liệu dựa trên số liệu thống kê sử dụng. Chính sách Cấp thấp nhất hiện có tìm cách đặt dữ liệu ở cấp hoạt động kém nhất.

Việc truyền dữ liệu được thực hiện với mức độ ưu tiên thấp để không ảnh hưởng đến công việc hữu ích của hệ thống lưu trữ, tuy nhiên, có cài đặt “Tốc độ di chuyển dữ liệu” sẽ thay đổi mức độ ưu tiên. Có một điểm đặc biệt ở đây: không phải tất cả các khối dữ liệu đều có thứ tự phân phối lại giống nhau. Ví dụ: các khối được đánh dấu là siêu dữ liệu trước tiên sẽ được chuyển sang cấp nhanh hơn. Có thể nói, siêu dữ liệu là “dữ liệu về dữ liệu”, một số thông tin bổ sung không phải là dữ liệu người dùng mà lưu trữ mô tả của họ. Ví dụ: thông tin trong hệ thống tệp về khối của một tệp cụ thể. Điều này có nghĩa là tốc độ truy cập dữ liệu phụ thuộc vào tốc độ truy cập siêu dữ liệu. Do siêu dữ liệu thường nhỏ hơn nhiều nên lợi ích của việc di chuyển nó sang các đĩa nhanh hơn dự kiến ​​sẽ lớn hơn.

Tiêu chí mà Fast VP sử dụng trong công việc của mình

Tiêu chí chính cho mỗi khối, nếu nói một cách đại khái, là đặc điểm “nhu cầu” dữ liệu, điều này phụ thuộc vào số lượng thao tác đọc và ghi của một đoạn dữ liệu. Đặc tính này được gọi là "Nhiệt độ". Có dữ liệu nóng còn nóng hơn cả dữ liệu không có người nhận. Nó được tính toán định kỳ, theo mặc định với khoảng thời gian là một giờ.

Hàm tính toán nhiệt độ có các thuộc tính sau:

  • Khi không có I/O, dữ liệu sẽ “lạnh dần” theo thời gian.
  • Với cùng một mức tải theo thời gian, nhiệt độ đầu tiên sẽ tăng lên và sau đó ổn định trong một phạm vi nhất định.

Hơn nữa, các chính sách được mô tả ở trên và dung lượng trống trên mỗi cấp đều được tính đến. Để rõ ràng, tôi sẽ đưa ra một hình ảnh từ tài liệu. Ở đây, màu đỏ, vàng và xanh lam lần lượt biểu thị các khối có nhiệt độ cao, trung bình và thấp.

NHANH CHÓNG VP trên bộ lưu trữ Unity: cách thức hoạt động

Nhưng quay lại với nhiệm vụ. Vì vậy, chúng ta có thể bắt đầu phân tích những gì đang được thực hiện để giải quyết các vấn đề của FAST VP.

A. Phân phối dữ liệu trên các loại đĩa, cấp độ khác nhau

Thực ra đây chính là nhiệm vụ chính của FAST VP. Phần còn lại, theo một nghĩa nào đó, là dẫn xuất của nó. Tùy thuộc vào chính sách đã chọn, dữ liệu sẽ được phân phối trên các tầng lưu trữ khác nhau. Trước hết, chính sách vị trí được tính đến, sau đó là nhiệt độ của các khối và kích thước/tốc độ của các nhóm RAID.

Đối với các chính sách Cấp cao nhất/thấp nhất hiện có, mọi thứ khá đơn giản. Đối với hai người còn lại, đây là trường hợp. Dữ liệu được phân phối ở các cấp độ khác nhau có tính đến quy mô và hiệu suất của các nhóm RAID: sao cho tỷ lệ giữa tổng "nhiệt độ" của các khối với "hiệu suất tối đa có điều kiện" của mỗi nhóm RAID là gần như nhau. Do đó, tải được phân phối ít nhiều đồng đều. Dữ liệu có nhu cầu nhiều hơn sẽ được chuyển sang phương tiện nhanh hơn, dữ liệu ít được sử dụng hơn sẽ được chuyển sang phương tiện chậm hơn. Lý tưởng nhất là bản phân phối sẽ trông giống như thế này:

NHANH CHÓNG VP trên bộ lưu trữ Unity: cách thức hoạt động

B. Phân phối dữ liệu giữa các đĩa cùng loại

Hãy nhớ rằng, lúc đầu tôi đã viết rằng các nhà cung cấp thông tin từ một hoặc nhiều các cấp độ được kết hợp thành một nhóm? Trong trường hợp chỉ có một cấp độ, FAST VP cũng có việc phải làm. Để tối đa hóa hiệu suất ở mọi cấp độ, điều mong muốn là phân phối dữ liệu đồng đều trên các đĩa. Điều này sẽ cho phép (về lý thuyết) nhận được số lượng IOPS tối đa. Dữ liệu trong một nhóm RAID có thể được coi là phân bố đồng đều trên các đĩa, nhưng điều này không phải lúc nào cũng đúng giữa các nhóm RAID. Trong trường hợp mất cân bằng, FAST VP sẽ di chuyển dữ liệu giữa các nhóm RAID theo kích thước của chúng và "hiệu suất có điều kiện" (dưới dạng số). Để rõ ràng, tôi sẽ trình bày sơ đồ tái cân bằng giữa ba nhóm RAID:

NHANH CHÓNG VP trên bộ lưu trữ Unity: cách thức hoạt động

C. Phân phối dữ liệu khi mở rộng pool

Tác vụ này là trường hợp đặc biệt của tác vụ trước và được thực hiện khi một nhóm RAID được thêm vào nhóm. Để ngăn nhóm RAID mới được thêm vào không hoạt động, một số dữ liệu sẽ được chuyển sang nhóm đó, điều đó có nghĩa là tải trên tất cả các nhóm RAID sẽ được phân phối lại.

Cân bằng hao mòn SSD

Thông qua việc cân bằng độ hao mòn, FAST VP có thể kéo dài tuổi thọ của ổ SSD, mặc dù tính năng này không liên quan trực tiếp đến Phân tầng lưu trữ. Vì đã có dữ liệu nhiệt độ nên số lượng thao tác ghi cũng được tính đến, chúng tôi biết cách di chuyển các khối dữ liệu, nên việc FAST VP cũng giải quyết vấn đề này là điều hợp lý.

Nếu số lượng ghi vào một nhóm RAID vượt quá đáng kể số lượng ghi vào nhóm RAID khác, FAST VP sẽ phân phối lại dữ liệu theo số lượng ghi. Một mặt, điều này loại bỏ tải và tiết kiệm tài nguyên của một số đĩa, mặt khác, nó bổ sung thêm “công việc” cho những đĩa ít tải hơn, tăng hiệu suất tổng thể.

Do đó, FAST VP đảm nhận các nhiệm vụ truyền thống là Phân tầng lưu trữ và làm được nhiều hơn thế một chút. Tất cả điều này cho phép bạn lưu trữ dữ liệu một cách hiệu quả trong hệ thống lưu trữ Unity.

Một vài lời khuyên

  1. Đừng bỏ bê việc đọc tài liệu. Có những phương pháp hay nhất và chúng hoạt động khá tốt. Nếu bạn tuân theo chúng, thì theo quy luật, các vấn đề nghiêm trọng sẽ không phát sinh. Những lời khuyên còn lại về cơ bản lặp lại hoặc bổ sung chúng.
  2. Nếu bạn đã định cấu hình và bật FAST VP, thì hãy bật nó. Hãy để nó phân bổ dữ liệu trong thời gian quy định và từng chút một mỗi năm và có ảnh hưởng nghiêm trọng đến hiệu suất của các nhiệm vụ khác. Trong những trường hợp như vậy, việc phân phối lại dữ liệu có thể mất nhiều thời gian.
  3. Hãy cẩn thận khi chọn một cửa sổ tái định cư. Mặc dù điều này là hiển nhiên, nhưng hãy cố gắng chọn thời điểm tải Unity ít nhất và phân bổ đủ thời gian.
  4. Lập kế hoạch mở rộng lưu trữ của bạn, thực hiện đúng thời gian. Đây là khuyến nghị chung cũng quan trọng đối với FAST VP. Nếu dung lượng trống rất nhỏ thì việc di chuyển dữ liệu sẽ chậm lại hoặc không thể thực hiện được. Đặc biệt nếu bạn bỏ qua điểm 2.
  5. Khi mở rộng nhóm có bật VP NHANH CHÓNG, đừng bắt đầu với các ổ đĩa chậm nhất. Nghĩa là, chúng tôi thêm tất cả các nhóm RAID theo kế hoạch cùng một lúc hoặc chúng tôi thêm các đĩa nhanh nhất trước. Trong trường hợp này, việc phân phối lại dữ liệu sang các đĩa "nhanh" mới sẽ tăng tốc độ chung của nhóm. Nếu không, bắt đầu với đĩa "chậm", bạn có thể gặp phải một tình huống rất khó chịu. Đầu tiên, dữ liệu sẽ được chuyển sang các đĩa mới, tương đối chậm, sau đó, khi thêm các đĩa nhanh hơn, theo hướng ngược lại. Có những sắc thái liên quan đến các chính sách FAST VP khác nhau, nhưng trong trường hợp chung, tình huống này có thể xảy ra.

Nếu bạn đang xem sản phẩm này thì bạn có thể dùng thử Unity miễn phí bằng cách tải xuống thiết bị ảo Unity VSA.

NHANH CHÓNG VP trên bộ lưu trữ Unity: cách thức hoạt động

Cuối bài viết, tôi chia sẻ một vài liên kết hữu ích:

Kết luận

Tôi muốn viết về rất nhiều điều, nhưng tôi hiểu rằng không phải tất cả các chi tiết đều sẽ được người đọc quan tâm. Ví dụ: bạn có thể nói chi tiết hơn về các tiêu chí mà FAST VP đưa ra quyết định truyền dữ liệu, về các quy trình phân tích thống kê I / O. Ngoài ra, chủ đề tương tác với Nhóm năng động, và điều này kéo theo một bài viết riêng biệt. Bạn thậm chí có thể tưởng tượng về sự phát triển của công nghệ này. Tôi hy vọng nó không nhàm chán và tôi không làm bạn chán. Cho đến khi chúng ta gặp lại nhau!

Nguồn: www.habr.com

Thêm một lời nhận xét