Siêu dữ liệu OneFS

OneFS sử dụng hai cấu trúc dữ liệu chính để cho phép thông tin về từng đối tượng hoặc siêu dữ liệu trong hệ thống tệp được tìm kiếm, quản lý và lưu trữ hiệu quả và đáng tin cậy. Các cấu trúc này là:

  • Inode
  • Cây B

OneFS sử dụng inode để lưu trữ các thuộc tính tệp và con trỏ đến các vị trí dữ liệu tệp trên đĩa. Mỗi tệp, thư mục, liên kết, v.v. được biểu diễn bằng một inode.

Trong OneFS, inode có hai kích thước – 512B hoặc 8KB. Kích thước mà OneFS sử dụng chủ yếu được xác định bởi định dạng khối vật lý và logic của các ổ đĩa trong diskpool.

Tất cả các inode OneFS đều có cả phần tĩnh và phần động. Không gian phần tĩnh bị giới hạn và có giá trị vì nó có thể được truy cập trong một I/O duy nhất và không yêu cầu khóa phân tán để truy cập. Nó chứa các thuộc tính có độ rộng cố định, thường được sử dụng như bit chế độ POSIX, chủ sở hữu và kích thước.

Đồ họa minh họa thành phần của inode OneFS.

Ngược lại, phần động của inode cho phép thêm các thuộc tính mới, nếu cần, mà không cần cập nhật định dạng inode. Điều này có thể thực hiện bằng cách chỉ cần thêm một giá trị kiểu mới với mã để tuần tự hóa và hủy tuần tự hóa nó. Các thuộc tính động được lưu trữ theo định dạng giá trị độ dài kiểu luồng (TLV) và bao gồm các chính sách bảo vệ, ACL OneFS, gốc cây b nhúng, thông tin thành viên miền, v.v.

Nếu cần, OneFS cũng có thể sử dụng các khối mở rộng, là các khối 8KB để lưu trữ bất kỳ thuộc tính nào không thể phù hợp hoàn toàn với inode. Các dịch vụ dữ liệu OneFS như SnapshotIQ cũng thường tận dụng các khối mở rộng inode.

Đồ họa minh họa inode OneFS có các khối mở rộng.

Các inode được tạo và lưu trữ động tại các vị trí trên tất cả các ổ đĩa trong cụm; OneFS sử dụng b-tree (thực tế là B+ trees ) để lập chỉ mục và truy xuất nhanh. Cấu trúc chung của một b-tree OneFS bao gồm một khối cấp cao nhất, được gọi là ‘root’. Các khối B-tree tham chiếu đến các b-tree khác được gọi là ‘inner blocks’. Các khối cuối cùng ở cuối cây được gọi là ‘leaf blocks’.

 

Đồ họa mô tả cấu trúc chung của cây b OneFS.

Chỉ có các khối lá thực sự chứa siêu dữ liệu, trong khi các khối gốc và khối bên trong cung cấp chỉ mục địa chỉ cân bằng, cho phép nhận dạng và truy cập nhanh vào các khối lá và siêu dữ liệu của chúng.

LIN, hay inode logic, được truy cập mỗi khi truy cập tệp, thư mục hoặc b-tree. Chức năng của LIN Tree là lưu trữ ánh xạ giữa một số LIN duy nhất và địa chỉ phản chiếu inode của nó.

LIN được biểu diễn dưới dạng số thập lục phân 64 bit. Mỗi tệp được gán một LIN duy nhất và vì LIN không bao giờ được sử dụng lại nên nó là duy nhất trong suốt vòng đời của cụm. Ví dụ, tệp /ifs/data/test/file1 có LIN sau:

# isi lấy -D /ifs/data/test/f1 | grep LIN:
* LỤC: 1:2d29:4204

Tương tự như vậy, thư mục cha của nó, /ifs/data/test  có:

# isi lấy -D /ifs/data/test | grep LIN:
* LẮP: 1:0353:bb59
* LÂM: 1:0009:0004
* LỤC: 1:2d29:4204

Mục nhập cây LIN của tệp ở trên bao gồm ánh xạ giữa LIN và ba địa chỉ đĩa inode được phản chiếu của nó.

# isi lấy -D /ifs/data/test/f1 | grep "inode"
* IFS inode: [ 92,14,524557565440:512, 93,19,399535074304:512, 95,19,610321964032:512 ]

Lấy địa chỉ inode đầu tiên trong số các địa chỉ này, 92,14,524557565440:512, có thể suy ra điều sau đây, đọc từ trái sang phải:

  • Nó ở nút 92.
  • Được lưu trữ trên ổ đĩa số 14.
  • Tại địa chỉ khối 524557565440.
  • Và là inode 512byte.

LIN cha của tệp cũng có thể được xác định dễ dàng:

# isi get -D /ifs/data/test/f1 | grep -i "Lin cha"
* Cha mẹ Lin 1:0353:bb59

Ngoài cây LIN, OneFS còn sử dụng b-tree để hỗ trợ truy cập tệp và thư mục, cùng với việc quản lý một số dịch vụ dữ liệu khác. Tuy nhiên, ba b-tree chính mà OneFS sử dụng là:

Loại Tên cây B+ Sự miêu tả
Tập tin Metatree hoặc Inode Format Manager (IFM B-tree)
  • Cây B này lưu trữ một ánh xạ của Số khối logic (LBN) tới nhóm bảo vệ
  • Nó có trách nhiệm lưu trữ vị trí vật lý của các khối tập tin trên đĩa.
Thư mục Trình quản lý định dạng thư mục (DFM B-tree)
  • Cây B này lưu trữ các mục nhập thư mục (Tên tệp và thư mục/thư mục con)
  • Nó bao gồm toàn bộ không gian tên /ifs và mọi thứ bên dưới nó.
Hệ thống Hệ thống B-tree (SBT)
  • Triển khai B+ Tree chuẩn hóa để lưu trữ hồ sơ cho mục đích sử dụng nội bộ của OneFS, thường liên quan đến một tính năng cụ thể bao gồm: Diskpool DB, IFS Domains, WORM, Idmap. Quota (QDB) và Snapshot Tracking Files (STF) thực chất là các triển khai B+ Tree riêng biệt/duy nhất.

OneFS cũng phụ thuộc rất nhiều vào một số cấu trúc siêu dữ liệu khác, bao gồm:

  • Shadow Store – Loại bỏ/sao chép các cấu trúc siêu dữ liệu bao gồm SIN
  • QDB – Cấu trúc cơ sở dữ liệu hạn ngạch
  • Hệ thống B+ Tree Files
  • STF – Tệp theo dõi ảnh chụp nhanh
  • SÂU
  • IFM gián tiếp
  • Bản đồ
  • Thư mục hệ thống
  • Khối Delta
  • Tệp Logstore

Cả inode và khối b-tree đều được phản chiếu trên đĩa. Bảo vệ dựa trên phản chiếu được sử dụng riêng cho tất cả siêu dữ liệu OneFS vì nó đơn giản và nhẹ, do đó tránh được quá trình xử lý bổ sung của mã hóa xóa. Vì siêu dữ liệu thường chỉ chiếm khoảng 2% dung lượng của cụm tổng thể, nên chi phí phản chiếu cho siêu dữ liệu là tối thiểu.

Số lượng bản sao inode (tối thiểu 2x đến 8x) được xác định bởi chính sách bảo vệ đạt được của nodepool và loại siêu dữ liệu. Sau đây là bản đồ số lượng bản sao mặc định cho tất cả các loại siêu dữ liệu.

Mức độ bảo vệ Loại siêu dữ liệu Số lượng gương
+1n Inode tập tin 2 inode cho mỗi tệp
+2ngày:1đ Inode tập tin 3 inode cho mỗi tệp
+2n Inode tập tin 3 inode cho mỗi tệp
+3ngày:1n Inode tập tin 4 inode cho mỗi tệp
+3ngày:1ngày1ngày Inode tập tin 4 inode cho mỗi tệp
+3n Inode tập tin 4 inode cho mỗi tệp
+4ngày:1n Inode tập tin 5 inode cho mỗi tệp
+4ngày:2đ Inode tập tin 5 inode cho mỗi tệp
+4n Inode tập tin 5 inode cho mỗi tệp
2x->8x Inode tập tin Giống như mức độ bảo vệ. Tức là 2x == 2 gương inode
+1n Thư mục inode 3 inode cho mỗi tệp
+2ngày:1đ Thư mục inode 4 inode cho mỗi tệp
+2n Thư mục inode 4 inode cho mỗi tệp
+3ngày:1n Thư mục inode 5 inode cho mỗi tệp
+3ngày:1ngày1ngày Thư mục inode 5 inode cho mỗi tệp
+3n Thư mục inode 5 inode cho mỗi tệp
+4ngày:1n Thư mục inode 6 inode cho mỗi tệp
+4ngày:2đ Thư mục inode 6 inode cho mỗi tệp
+4n Thư mục inode 6 inode cho mỗi tệp
2x->8x Thư mục inode +1 mức độ bảo vệ. Tức là 2x == 3 gương inode
  Gốc/chủ LIN 8x
  LIN bên trong/lá Biến – bảo vệ cho mỗi mục nhập
  Cây b IFM/DFM Biến – bảo vệ cho mỗi mục nhập
  Cơ sở dữ liệu hạn ngạch b-tree (QDB) 8x
  Hệ thống SBT b-tree (SBT) Biến – bảo vệ cho mỗi mục nhập
  Tệp theo dõi ảnh chụp nhanh (STF) 8x

Lưu ý rằng, theo mặc định, các inode thư mục được phản chiếu ở một cấp độ cao hơn chính sách bảo vệ đã đạt được, vì các thư mục quan trọng hơn và tạo nên không gian tên đơn OneFS. Gốc của Cây LIN là loại siêu dữ liệu quan trọng nhất và luôn được phản chiếu ở mức 8x.

Chiến lược SSD OneFS điều chỉnh vị trí và lượng siêu dữ liệu được đặt trên SSD hoặc HDD. Có năm Chiến lược SSD và chúng có thể được cấu hình bằng cách sử dụng chính sách nhóm tệp của OneFS:

Chiến lược SSD Sự miêu tả
Bộ nhớ đệm L3 Tất cả các ổ đĩa trong Node Pool được sử dụng như bộ đệm loại bỏ chỉ đọc khỏi Bộ đệm L2. Dữ liệu và siêu dữ liệu hiện đang sử dụng sẽ lấp đầy toàn bộ dung lượng của Ổ đĩa SSD ở chế độ này. Lưu ý: Chế độ L3 không đảm bảo rằng tất cả siêu dữ liệu sẽ nằm trên SSD, vì vậy đây có thể không phải là chế độ hiệu suất cao nhất cho các quy trình làm việc chuyên sâu về siêu dữ liệu.
Đọc siêu dữ liệu Một gương siêu dữ liệu được đặt trên SSD. Tất cả các gương khác sẽ được đặt trên HDD cho các mô hình lưu trữ và lai. Chế độ này có thể tăng hiệu suất đọc cho các quy trình làm việc chuyên sâu về siêu dữ liệu.
Viết siêu dữ liệu Tất cả các gương siêu dữ liệu đều được đặt trên SSD. Chế độ này có thể tăng cường cả hiệu suất đọc và ghi khi có nhu cầu đáng kể về IO siêu dữ liệu. Lưu ý : Điều quan trọng là phải hiểu các yêu cầu về dung lượng SSD cần thiết để hỗ trợ các chiến lược Siêu dữ liệu.  
Dữ liệu Đặt dữ liệu trên SSD. Đây không phải là chiến lược được sử dụng rộng rãi vì các nút Hybrid và Archive có dung lượng SSD hạn chế và siêu dữ liệu nên được ưu tiên trên SSD để có hiệu suất tốt nhất.
Tránh xa Tránh sử dụng SSD cho một đường dẫn cụ thể. Đây không phải là một chiến lược được sử dụng rộng rãi nhưng có thể hữu ích nếu bạn có các quy trình lưu trữ không yêu cầu SSD và muốn dành không gian SSD cho các đường dẫn/quy trình quan trọng hơn.

Về cơ bản, vị trí siêu dữ liệu OneFS được xác định bởi các thuộc tính sau:

  • Mô hình các nút trong mỗi nhóm nút (dòng F, dòng H, dòng A)
  • Chiến lược SSD hiện tại trên nhóm nút được cấu hình bằng chính sách nhóm tệp mặc định và chính sách nhóm tệp tùy chỉnh do quản trị viên tạo
  • Cài đặt nhóm lưu trữ toàn cầu của cụm

Bạn có thể sử dụng các lệnh CLI sau để xác minh chiến lược SSD hiện tại và chi tiết vị trí siêu dữ liệu trên một cụm. Ví dụ: để kiểm tra xem Chế độ L3 có được bật trên một nhóm nút cụ thể hay không:

# isi storagepool nodepool danh sách
ID Tên Nút Loại Nút ID Chính sách bảo vệ Hướng dẫn
-------------------------------------------------- --------------------------------
1 h500_30tb_3.2tb-ssd_128gb 1 1 +2d:1n Không

Trong đầu ra này, có một nhóm nút H500 duy nhất được báo cáo với ID là 1. Để hiển thị thông tin chi tiết về nhóm này, hãy sử dụng lệnh sau:

# isi storagepool nodepool xem 1
                 Mã số: 1
               Tên: h500_30tb_3.2tb-ssd_128gb
              Các nút: 1, 2, 3, 4, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
      ID loại nút: 1
  Chính sách bảo vệ: +2d:1n
             Hướng dẫn sử dụng: Không
         L3 được kích hoạt: Có
Trạng thái di chuyển L3: l3
               Bậc: -
              Cách sử dụng
                Có sẵn Byte: 321,91T
            Có sẵn SSD Bytes: 0.00
                   Cân bằng: Không
                 Byte miễn phí: 329,77T
             Số byte SSD miễn phí: 0,00
                Tổng số byte: 643,13T
            Tổng số byte SSD: 0,00
    Byte dự phòng nóng ảo: 7,86T

Lưu ý rằng nếu, như trong trường hợp này, L3 được bật trên một nhóm nút, bất kỳ thay đổi nào đối với cấu hình Chiến lược SSD của nhóm này bằng cách sử dụng chính sách nhóm tệp, v.v., sẽ không được chấp nhận. Điều này sẽ vẫn duy trì cho đến khi bộ đệm L3 bị vô hiệu hóa và SSD được định dạng lại để sử dụng làm bản sao siêu dữ liệu.

Bạn có thể sử dụng lệnh sau để kiểm tra cấu hình chính sách nhóm tệp mặc định của cụm:

# isi filepool chính sách mặc định xem
          Thiết lập yêu cầu bảo vệ: mặc định
               Mẫu truy cập dữ liệu: đồng thời
                  Bật Coalescer: Có
                    Cho phép đóng gói: Không
               Mục tiêu lưu trữ dữ liệu: bất cứ nơi nào
                 Chiến lược SSD dữ liệu: siêu dữ liệu
           Mục tiêu lưu trữ ảnh chụp nhanh: bất cứ nơi nào
             Chiến lược SSD Snapshot: siêu dữ liệu
                        Bể bơi đám mây: -
         Đã bật nén đám mây: -
          Đã bật mã hóa đám mây: -
              Lưu trữ dữ liệu đám mây: -
Lưu giữ sao lưu gia tăng trên đám mây: -
       Lưu giữ bản sao lưu đầy đủ trên đám mây: -
               Khả năng truy cập đám mây: -
                  Đọc trước trên đám mây: -
            Ngày hết hạn của Cloud Cache: -
         Tần suất ghi lại đám mây: -
      Tệp ảnh chụp nhanh lưu trữ đám mây: -
                                NHẬN DẠNG: -

Và để liệt kê tất cả Chính sách FilePool được cấu hình trên một cụm:

# danh sách chính sách filepool isi

Xem Chính sách FilePool cụ thể:

# isi filepool chính sách xem <Tên chính sách>

OneFS cũng cung cấp các thiết lập cấu hình storagepool toàn cầu để kiểm soát vị trí siêu dữ liệu bổ sung. Ví dụ: 

# isi storagepool cài đặt xem
     Tự động quản lý bảo vệ: files_at_default
Tự động quản lý tối ưu hóa Io: files_at_default
Bảo vệ thư mục ở cấp độ cao hơn: Có
       Tăng tốc không gian tên toàn cầu: đã tắt
       Virtual Hot Spare Deny Viết: Có
        Virtual Hot Spare Hide Spare: Có
      Ổ đĩa giới hạn Virtual Hot Spare: 2
     Phần trăm giới hạn dự phòng nóng ảo: 0
             Mục tiêu lan tỏa toàn cầu: bất cứ nơi nào
                   Cho phép tràn: Có
        Bộ nhớ đệm SSD L3 Mặc định được bật: Có
                     Gương Qab SSD: một
            Hệ thống SSD Btree Mirrors: một
            Gương Delta của Hệ thống SSD: một

Đầu ra CLI bên dưới bao gồm mô tả về các tùy chọn siêu dữ liệu có liên quan.  

# isi storagepool cài đặt sửa đổi -h | egrep -i tùy chọn -A 30
Tùy chọn:
    --tự động-quản-lý-bảo-vệ (tất cả | tệp_ở_mặc_định | không có)
        Thiết lập xem SmartPools có quản lý cài đặt bảo vệ tệp hay không.
    --tự động quản lý tối ưu hóa io (tất cả | tệp_ở_mặc_định | không có)
        Thiết lập xem SmartPools có quản lý cài đặt tối ưu hóa I/O của tệp hay không.
    --protect-directories-one-level-higher <boolean>
        Bảo vệ thư mục ở cấp độ cao hơn.
    --global-namespace-acceleration-enabled <boolean> 
        Đã bật tính năng tăng tốc không gian tên toàn cục.
    --virtual-hot-spare-deny-writes <boolean>
        Dự phòng nóng ảo: từ chối ghi dữ liệu mới.
    --virtual-hot-spare-ẩn-spare <boolean>
        Dự phòng nóng ảo: giảm dung lượng khả dụng.
    --virtual-hot-spare-limit-drives <số nguyên>
        Dự phòng nóng ảo: số lượng ổ đĩa ảo.
    --virtual-hot-spare-limit-percent <số nguyên>
        Dung lượng dự phòng nóng ảo: phần trăm tổng dung lượng lưu trữ.
    --spillover-mục tiêu
        Mục tiêu lan tỏa.
    --tràn lan-bất cứ nơi nào
        Đặt sự lan tỏa toàn cầu tới bất kỳ đâu.
    --spillover-enabled <boolean>
        Ghi tràn vào các nhóm trong spillover_target khi cần.
    --ssd-l3-cache-default-enabled <boolean>
        Cài đặt mặc định để bật L3 trên Node Pool mới.
    --ssd-qab-mirrors (một | tất cả) 
        Kiểm soát số lượng bản sao của các khối QAB được đặt trên SSD. 
    --ssd-system-btree-mirrors (một | tất cả) 
        Kiểm soát số lượng bản sao của các khối B-tree hệ thống được đặt trên SSD. 
    --ssd-system-delta-mirrors (một | tất cả) 
        Kiểm soát số lượng bản sao của các khối delta hệ thống được đặt trên SSD.

OneFS mặc định bảo vệ các thư mục cao hơn một cấp so với chính sách bảo vệ được cấu hình và giữ lại một bản sao của các cây b hệ thống trên SSD. Để có hiệu suất tối ưu trên các nút nền tảng lai, khuyến nghị là đặt tất cả các bản sao siêu dữ liệu trên SSD, giả sử rằng dung lượng khả dụng. Tuy nhiên, hãy lưu ý rằng các tùy chọn sao chép SSD siêu dữ liệu chỉ hoạt động nếu Chế độ L3 bị tắt.

Ngoài ra, tăng tốc không gian tên toàn cầu (GNA) là tùy chọn cũ cho phép các nút không có SSD đặt siêu dữ liệu của chúng trên các nút có SSD. Tất cả các mô hình nút PowerScale hiện đang vận chuyển đều bao gồm ít nhất một ổ SSD.