Thursday, November 21, 2024

Một số lệnh cơ bản sử dụng để debug trong Ceph

-

1. Tổng quan.

2. Tìm hiểu các thông báo của lệnh ceph -s.

2.1. Trường hợp hệ thống bình thường.

shell> ceph -s
  cluster:
    id:     a5c33f84-8710-476b-9924-2a76e0395a73
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum pve01,pve02,pve03 (age 46h)
    mgr: pve01(active, since 47h), standbys: pve02, pve03
    osd: 12 osds: 12 up (since 46h), 12 in (since 3d)

  data:
    pools:   6 pools, 1153 pgs
    objects: 41.24k objects, 161 GiB
    usage:   341 GiB used, 21 TiB / 22 TiB avail
    pgs:     1153 active+clean

  io:
    client:   0 B/s rd, 150 KiB/s wr, 0 op/s rd, 8 op/s wr

2.2. Trường hợp khi có device hỏng và hệ thống đang thực hiện rebalance.

Chúng ta hãy sử dụng output này để phân tích nhé.

shell> ceph -s
  cluster:
    id:     a5c33f84-8710-476b-9924-2a76e0395a73
    health: HEALTH_WARN
            clock skew detected on mon.pve02, mon.pve03
            Reduced data availability: 1 pg inactive
            Degraded data redundancy: 36979/120408 objects degraded (30.711%), 627 pgs degraded, 627 pgs undersized
 
  services:
    mon: 3 daemons, quorum pve01,pve02,pve03 (age 12s)
    mgr: pve03(active, since 94m), standbys: pve01, pve02
    osd: 12 osds: 12 up (since 2s), 12 in (since 2d); 604 remapped pgs
 
  data:
    pools:   2 pools, 1025 pgs
    objects: 60.20k objects, 234 GiB
    usage:   465 GiB used, 21 TiB / 22 TiB avail
    pgs:     0.098% pgs unknown
             6.244% pgs not active
             1   unknown
             27  peering
             36  remapped+peering
             1   undersized+degraded+peered
             36979/120408 objects degraded (30.711%)
             626 active+undersized+degraded+remapped+backfill_wait
             4   active+undersized+degraded+remapped+backfilling
             334 active+clean
             12  active+clean+scrubbing
             9   active+clean+scrubbing+deep
             345/120408 objects misplaced (0.029%)
 
  io:
    recovery: 12 MiB/s, 2 objects/s

2.2.1. Trạng thái Cluster.

Clock skew detected.

Lỗi clock skew detected trên các monitor (như mon.pve02, mon.pve03) trong Ceph là một cảnh báo thời gian trên các máy chủ này không đồng bộ với nhau. Lỗi clock skew là quan trọng và không nên bỏ qua, dù cụm của bạn vẫn đang hoạt động bình thường. Đồng bộ thời gian là yếu tố quan trọng để đảm bảo sự ổn định và nhất quán của cụm Ceph.

  • Tầm quan trọng của lỗi clock skew:
    • Ảnh hưởng đến hoạt động: Dù cluster vẫn có thể chạy được khi có sự chênh lệch thời gian nhỏ, nhưng nếu thời gian lệch quá nhiều, nó có thể dẫn đến các vấn đề nghiêm trọng trong hệ thống. Ceph dựa vào đồng bộ thời gian để đảm bảo sự nhất quán dữ liệu, đồng bộ các giao dịch và quản lý trạng thái của các OSD và PGs.
    • Quản lý trạng thái: Các monitor sử dụng thời gian hệ thống để xác định thứ tự các sự kiện và quản lý các phiên bản của bản đồ (maps) như OSDMap, PGMap, v.v. Nếu thời gian không đồng bộ, có thể xảy ra xung đột về trạng thái, gây khó khăn trong việc đồng bộ và quản lý trạng thái của cụm.
  • Tại sao khi gặp lỗi mà cluster vẫn chạy được:
    • Tolerances: Ceph có khả năng chịu đựng một mức độ chênh lệch thời gian nhỏ giữa các monitor mà không gây ra vấn đề nghiêm trọng ngay lập tức. Tuy nhiên, chênh lệch này cần được duy trì trong giới hạn cho phép.
    • Tự động đồng bộ: Thường thì các cụm Ceph được cấu hình để sử dụng NTP (Network Time Protocol) hoặc một cơ chế đồng bộ thời gian khác để giữ cho thời gian của các node đồng bộ. Nếu hệ thống bị lệch thời gian nhỏ, hệ thống có thể tự điều chỉnh.
  • Khuyến nghị:
    • Kiểm tra và đồng bộ thời gian: Đảm bảo rằng các node trong cụm sử dụng cùng một nguồn đồng bộ thời gian (như NTP) và thời gian được đồng bộ chính xác.
    • Theo dõi lỗi: Dù cụm vẫn chạy bình thường, nếu bạn thường xuyên thấy lỗi này, bạn nên xử lý nó để tránh các vấn đề tiềm ẩn trong tương lai.

Reduced data availability: 1 pg inactive.

Thông báo Reduced data availability: 1 pg inactive chỉ ra rằng hiện tại bạn không thể truy cập dữ liệu trong PG đó, nhưng cũng chưa chắc dữ liệu đã bị mất hoàn toàn.

  • PG bị mất kết nối hoặc bị lỗi: PG có thể không hoạt động do một hoặc nhiều OSD lưu trữ các bản sao của PG này gặp sự cố hoặc bị mất kết nối. Trong trường hợp này, dữ liệu có thể vẫn còn nhưng không thể truy cập được cho đến khi các OSD hoặc PG trở lại hoạt động bình thường.
  • Mất toàn bộ dữ liệu: Nếu tất cả các bản sao của PG này trên các OSD đã bị hỏng hoặc không thể khôi phục được, dữ liệu trong PG đó có thể đã bị mất hoàn toàn. Tuy nhiên, điều này ít phổ biến nếu bạn có cấu hình dự phòng tốt (replica hoặc erasure coding).

Để xác định chính xác, bạn nên kiểm tra:

  • Trạng thái của các OSD liên quan: Kiểm tra xem các OSD có chứa bản sao của PG này có gặp sự cố không và liệu chúng có thể khôi phục lại được không.
  • Trạng thái đồng bộ lại (recovery): Nếu các OSD quay trở lại hoạt động, Ceph có thể tự động khôi phục lại PG đó và dữ liệu có thể được truy cập lại.
  • Backup: Nếu bạn có bản sao lưu, bạn có thể khôi phục dữ liệu từ đó nếu xác nhận rằng dữ liệu trong PG này đã bị mất hoàn toàn.

Trong nhiều trường hợp, inactive chỉ là trạng thái tạm thời và dữ liệu có thể được khôi phục khi hệ thống tính toán và đồng bộ lại xong.

Degraded data redundancy: 36979/120408 objects degraded (30.711%), 627 pgs degraded, 627 pgs undersized.

Lỗi Degraded data redundancy với thông báo chi tiết 36979/120408 objects degraded (30.711%), 627 pgs degraded, 627 pgs undersized chỉ ra rằng hệ thống Ceph của bạn đang gặp vấn đề với sự suy giảm về khả năng bảo vệ dữ liệu.

  • Degraded Objects:
    • 36979/120408 objects degraded (30.711%): Trong tổng số 120.408 object dữ liệu, có 36.979 object bị thiếu bản sao, chiếm khoảng 30.71%. Điều này có nghĩa là các bản sao dữ liệu dự phòng (replica) của các object này chưa được đồng bộ hoặc mất mát.
  • Degraded PGs:
    • 627 pgs degraded: Trong cụm của bạn, có 627 placement groups (PGs) bị thiếu bản sao. Một PG bị thiếu bản sao nghĩa là một số hoặc tất cả các bản sao dữ liệu trong PG đó không ở trạng thái tốt (không đủ bản sao cần thiết).
  • Undersized PGs:
    • 627 pgs undersized: Số lượng PG bị “undersized” trùng khớp với số lượng PG bị suy giảm. “Undersized” nghĩa là số lượng bản sao của dữ liệu trong các PG đó ít hơn số lượng yêu cầu (thường là do mất một hoặc nhiều OSDs hoặc do một phần của hệ thống không khả dụng).
  • Nguyên nhân có thể xảy ra:
    • OSD Failure: Một hoặc nhiều OSDs có thể đã gặp sự cố, dẫn đến việc mất bản sao dữ liệu.
    • Network Issues: Vấn đề mạng có thể khiến một số OSDs không khả dụng, làm cho các PG bị thiếu bản sao.
    • Recovery Process: Ceph có thể đang trong quá trình khôi phục dữ liệu sau sự cố, nhưng chưa hoàn thành việc khôi phục.
  • Ảnh hưởng:
    • Rủi ro mất dữ liệu: Khi hệ thống ở trạng thái degraded và undersized, rủi ro mất mát dữ liệu tăng cao nếu có thêm bất kỳ OSD nào bị lỗi.
    • Hiệu suất giảm: Hệ thống có thể bị ảnh hưởng về hiệu suất khi đang cố gắng khôi phục các bản sao dữ liệu.

345/120408 objects misplaced (0.029%).

Có 345/120408 objects đang được lưu trữ trên các OSD sai vị trí so với vị trí mà Ceph dự định. Điều này có thể xảy ra khi hệ thống thực hiện rebalance dữ liệu, chẳng hạn như khi thêm hoặc gỡ bỏ OSD, hoặc khi có thay đổi cấu trúc trong cluster (như thêm host hoặc thay đổi crush map).

Mặc dù các misplaced objects đang ở sai vị trí so với vị trí mà Ceph dự định, nhưng chúng vẫn có thể được sử dụng để phục vụ các yêu cầu đọc và ghi dữ liệu từ phía người dùng. Ceph đảm bảo rằng các objects này vẫn được truy cập bình thường ngay cả khi chúng đang nằm ở vị trí không mong muốn.

Tuy nhiên, hệ thống Ceph sẽ tự động xử lý các misplaced objects này bằng cách di chuyển chúng đến vị trí đúng (theo quá trình rebalance hoặc backfilling) để đảm bảo tính toàn vẹn dữ liệu và tuân thủ các quy tắc dự phòng. Trong quá trình này, dữ liệu vẫn có thể được sử dụng và không bị gián đoạn đối với người dùng.

Misplaced objects trong Ceph có thể xuất hiện trong một số tình huống sau:

  • Thay đổi cấu hình cluster: Khi bạn thêm hoặc loại bỏ OSDs, Ceph sẽ cần phải rebalance lại dữ liệu để đảm bảo rằng các objects được phân bố đều trên các OSD. Trong quá trình rebalance này, có thể xảy ra tình trạng misplaced objects, tức là các objects tạm thời nằm ở các OSD không được chỉ định trong mapping hiện tại của cluster.
  • Thay đổi CRUSH map: CRUSH map quyết định vị trí lưu trữ của các objects trong cluster. Nếu có bất kỳ thay đổi nào đối với CRUSH map (ví dụ: thay đổi cấu trúc hierarchy, thay đổi trọng số OSDs), điều này có thể làm cho một số objects bị “misplaced” khi Ceph cố gắng điều chỉnh lại vị trí lưu trữ theo mapping mới.
  • Sự cố OSD: Nếu một OSD gặp sự cố và sau đó được đưa trở lại online, các objects mà nó lưu trữ có thể bị coi là misplaced cho đến khi Ceph hoàn tất quá trình rebalance hoặc backfilling để khôi phục lại sự phân bố dữ liệu hợp lý.
  • PG remapping: Khi một Placement Group (PG) được ánh xạ lại (remapped) do thay đổi trong cấu trúc cluster hoặc do sự cố OSD, các objects nằm trong PG đó có thể bị misplaced cho đến khi chúng được chuyển đến các OSD mới theo mapping đã điều chỉnh.
  • Tạm thời ngừng hoạt động OSD: Khi một OSD bị đánh dấu là “out” nhưng sau đó được đưa trở lại “in” trước khi quá trình rebalance hoàn tất, các objects trên OSD đó có thể bị misplaced.

Các misplaced objects là dấu hiệu của quá trình rebalance hoặc điều chỉnh dữ liệu đang diễn ra và Ceph sẽ tự động xử lý chúng để đưa chúng về đúng vị trí theo mapping mới của cluster.

2.2.2. Lệnh thông báo về trạng thái services.

2.2.3. Lệnh thông báo về trạng thái data (cụ thể là PGs).

Các mục dưới đây mô tả một trạng thái khác nhau của các PGs. Các thông tin trên cho thấy hệ thống Ceph đang gặp phải nhiều vấn đề, đặc biệt là với một số PG không hoạt động, không đủ bản sao. Đây là những vấn đề cần được giải quyết để đảm bảo tính toàn vẹn và sẵn sàng của dữ liệu.

0.098% pgs unknown.

Một phần nhỏ các PG (0.098%) đang ở trạng thái unknown, nghĩa là hệ thống không thể xác định chính xác trạng thái của các PG này. Điều này có thể xảy ra nếu các OSD liên quan bị mất kết nối hoặc gặp sự cố nghiêm trọng khiến Ceph không thể xác minh được tình trạng của PG.

6.244% pgs not active.

Khoảng 6.244% PGs không hoạt động (not active). Khi một PG không hoạt động, điều đó có nghĩa là dữ liệu trong PG đó không thể truy cập được. Đây là một tình huống cần khắc phục, vì dữ liệu không thể được đọc hoặc ghi vào các PG này.

334 active+clean.

  • Thông báo pgs 334 active+clean trong báo cáo trạng thái của Ceph cho biết rằng có 1025 Placement Groups (PGs) đang ở trạng thái activeclean. Đây là trạng thái tốt nhất cho một PG và nó có nghĩa như sau:
    • Active: PG đang hoạt động bình thường và có thể truy cập được. Điều này có nghĩa là dữ liệu trong PG này có thể được đọc và ghi một cách bình thường.
    • Clean: Tất cả các bản sao dữ liệu trong PG này đều được đồng bộ hóa hoàn toàn trên các OSD được chỉ định. Không có dữ liệu nào bị mất hoặc cần phải khôi phục. Khi một PG ở trạng thái clean, điều này có nghĩa là Ceph đã đảm bảo rằng tất cả các bản sao của dữ liệu đã được ghi đầy đủ và không có sự cố nào với dữ liệu trong PG này.

36979/120408 objects degraded (30.711%).

Trong tổng số 120408 objects được lưu trữ, có 36979 object đang ở trạng thái degraded, chiếm khoảng 30.711%. Điều này có nghĩa là các object này không có đủ số bản sao dự phòng do một hoặc nhiều OSD không hoạt động hoặc bị lỗi. Ceph sẽ cố gắng khôi phục các object này bằng cách tái tạo các bản sao bị thiếu nếu có đủ tài nguyên.

626 active+undersized+degraded.

  • Có 626 PGs đang ở trạng thái active, nhưng undersizeddegraded:
    • Undersized: PG không có đủ số lượng bản sao như mong muốn. Điều này có thể xảy ra khi một hoặc nhiều OSD không hoạt động.
    • Degraded: Dữ liệu trong PG không được sao lưu đầy đủ, làm giảm tính dự phòng.

36 remapped+peering.

  • Có 36 PGs đang ở trạng thái remappedpeering:
    • Remapped: Đây là giai đoạn đầu tiên khi Ceph nhận ra rằng một hoặc nhiều PGs cần được ánh xạ lại, có thể do các OSD cũ gặp sự cố hoặc cluster cấu hình lại. Quá trình remapping giúp xác định vị trí mới (OSD mới) mà các PGs sẽ được di chuyển hoặc sao chép đến. Tuy nhiên, trong giai đoạn này, chỉ có việc xác định vị trí mới được thực hiện và chưa có sự đồng bộ hóa dữ liệu.
    • Peering: Sau khi PGs đã được remapped, chúng chuyển sang trạng thái peering. Peering là quá trình quan trọng trong đó Ceph bắt đầu xác định dữ liệu gốc nằm ở đâu và đồng thời xác nhận dữ liệu hiện có trên các OSD mới được ánh xạ. Trong giai đoạn này, Ceph sẽ quyết định bản sao nào là chính xác nhất và từ đó bắt đầu quá trình đồng bộ dữ liệu với các OSD mới. Đây là giai đoạn mà dữ liệu thực sự được sao chép hoặc di chuyển để đạt được trạng thái nhất quán và đảm bảo rằng tất cả các bản sao dữ liệu đều được bảo vệ theo yêu cầu của cluster.

27 peering

Có 27 PGs đang ở trạng thái peering, tức là đang trong quá trình trao đổi thông tin giữa các OSD để đồng bộ và xác định dữ liệu nằm ở đâu.

1 undersized+degraded+peered

  • Có 1 PG đang ở trạng thái undersized, degraded và đã peered:
    • Undersized: PG thiếu số lượng bản sao dự phòng cần thiết.
    • Degraded: Dữ liệu trong PG không được sao lưu đầy đủ.
  • Peered: Quá trình trao đổi thông tin giữa các OSD đã hoàn tất, nhưng PG vẫn chưa đạt được số lượng bản sao cần thiết và vẫn bị thiếu.

1 unknown

Có 1 PG ở trạng thái unknown, nghĩa là hệ thống không thể xác định chính xác trạng thái của PG này. Điều này có thể do mất kết nối với các OSD liên quan hoặc các lỗi nghiêm trọng khác.

Scrubbing và deep.

Hai trạng thái scrubbingdeep scrubbing diễn ra thường xuyên như một phần của quy trình bảo trì tự động trong Ceph, chứ không phải chỉ khi cụm (cluster) gặp lỗi. Đây là các quá trình chủ động nhằm duy trì tính toàn vẹn và đảm bảo rằng dữ liệu được lưu trữ không bị lỗi hoặc hư hỏng theo thời gian.

  • Scrubbing:
    • Mục đích: Kiểm tra tính toàn vẹn của dữ liệu trên các (objects trong Placement Group (PG) bằng cách so sánh các bản sao của dữ liệu để tìm kiếm các lỗi không nhất quán.
    • Cách thức: Quá trình này chỉ kiểm tra metadata và sử dụng một mức độ checksum đơn giản hơn để so sánh dữ liệu giữa các bản sao.
    • Tần suất: Scrubbing diễn ra thường xuyên hơn và mất ít thời gian hơn so với deep scrubbing. Đây là một bước quan trọng trong việc duy trì tính nhất quán của dữ liệu mà không cần quá nhiều tài nguyên hệ thống.
  • Deep Scrubbing:
    • Mục đích: Kiểm tra sâu hơn tính toàn vẹn của dữ liệu, bao gồm việc so sánh toàn bộ nội dung của các object để phát hiện các lỗi tiềm ẩn mà quá trình scrubbing thông thường có thể bỏ sót.
    • Cách thức: Deep scrubbing so sánh checksum chi tiết của toàn bộ dữ liệu (thay vì chỉ metadata) giữa các bản sao để đảm bảo không có sự sai lệch hoặc hư hỏng dữ liệu.
    • Tần suất: Quá trình này diễn ra ít thường xuyên hơn do yêu cầu tài nguyên cao hơn và thời gian thực hiện lâu hơn. Tuy nhiên, nó là cần thiết để phát hiện các vấn đề tiềm ẩn mà quá trình scrubbing thông thường có thể không phát hiện được.

Trong output trên, hệ thống Ceph đang thực hiện cả hai quá trình này, với các PG trong trạng thái “active+clean+scrubbing” và “active+clean+scrubbing+deep”, tương ứng với quá trình scrubbing và scrubbing deep. Điều này giúp bảo vệ và duy trì tính toàn vẹn của dữ liệu được lưu trữ trên hệ thống.

Backfill Wait.

Trạng thái backfill_wait xảy ra khi một PG đã bắt đầu quá trình sao chép (backfilling) nhưng phải đợi một số điều kiện trước khi tiếp tục hoặc hoàn thành sao chép. Điều này có thể xảy ra vì lý do như tài nguyên hệ thống hạn chế hoặc các yếu tố khác ảnh hưởng đến tốc độ sao chép.

Giúp quản lý và điều phối quá trình sao chép dữ liệu trong các điều kiện hệ thống hạn chế hoặc khi có nhu cầu cân bằng tải để tránh quá tải hệ thống.

Backfilling.

Trạng thái backfilling xảy ra khi Ceph đang sao chép dữ liệu từ các bản sao hiện có của PGs sang các OSDs mới để đảm bảo tính nhất quán và đủ số lượng bản sao cần thiết. Quá trình này bắt đầu khi PGs được ánh xạ lại sang các OSDs mới hoặc khi các bản sao của PG bị thiếu.

Trạng thái này thường xuất hiện khi có sự thay đổi cấu hình hoặc khi hệ thống cần khôi phục dữ liệu để đạt được mức độ sao chép cần thiết. Ví dụ, khi một OSD mới được thêm vào, dữ liệu từ các bản sao hiện có sẽ được sao chép sang OSD mới đó để đảm bảo rằng dữ liệu có sẵn trên tất cả các OSD theo cấu hình.

Đảm bảo rằng tất cả các bản sao của PG đều được sao chép đầy đủ và đồng bộ với các OSD mới để đạt được tính toàn vẹn dữ liệu và phục hồi khả năng chống mất mát dữ liệu.

3. Tìm hiểu các thông báo của lệnh ceph health detail.

3.1. Trường hợp khi hệ thống bình thường.

shell> ceph health detail
HEALTH_OK

3.2. Trường hợp khi có device hỏng nhưng hệ thống chưa thực hiện rebalance.

Thông báo này từ lệnh ceph health detail cung cấp thông tin chi tiết về tình trạng hiện tại của cụm Ceph của bạn, bao gồm các cảnh báo liên quan đến tính sẵn sàng và độ toàn vẹn của dữ liệu.

shell> ceph health detail
HEALTH_WARN 1/3 mons down, quorum pve02,pve03; 4 osds down; 1 host (4 osds) down; Degraded data redundancy: 867579/2618374 objects degraded (33.134%), 678 pgs degraded, 678 pgs undersized
[WRN] MON_DOWN: 1/3 mons down, quorum pve02,pve03
    mon.pve01 (rank 0) addr [v2:10.10.20.1:3300/0,v1:10.10.20.1:6789/0] is down (out of quorum)
[WRN] OSD_DOWN: 4 osds down
    osd.0 (root=nvme-01,host=pve01) is down
    osd.1 (root=nvme-01,host=pve01) is down
    osd.2 (root=nvme-01,host=pve01) is down
    osd.3 (root=nvme-01,host=pve01) is down
[WRN] OSD_HOST_DOWN: 1 host (4 osds) down
    host pve01 (root=nvme-01) (4 osds) is down
[WRN] PG_DEGRADED: Degraded data redundancy: 867579/2618374 objects degraded (33.134%), 678 pgs degraded, 678 pgs undersized
    pg 2.3b7 is active+undersized+degraded, acting [4]
    pg 2.3b9 is stuck undersized for 5m, current state active+undersized+degraded, last acting [7]
    pg 2.3ba is stuck undersized for 5m, current state active+undersized+degraded, last acting [6]
    pg 2.3bb is stuck undersized for 5m, current state active+undersized+degraded, last acting [4]

<đã lược bỏ bớt logs>

    pg 2.3fb is stuck undersized for 5m, current state active+undersized+degraded, last acting [11]
    pg 2.3fd is stuck undersized for 5m, current state active+undersized+degraded, last acting [9]
    pg 2.3fe is stuck undersized for 5m, current state active+undersized+degraded, last acting [8]
    pg 2.3ff is stuck undersized for 5m, current state active+undersized+degraded, last acting [9]

HEALTH_WARN

Cụm Ceph đang trong trạng thái cảnh báo (HEALTH_WARN), có nghĩa là có một số vấn đề cần được khắc phục nhưng hệ thống vẫn hoạt động. Điều này báo hiệu rằng dữ liệu có thể gặp rủi ro nếu vấn đề không được giải quyết kịp thời.

MON_DOWN: 1/3 mons down, quorum pve02,pve03

Một trong ba Monitor (monitor pve01 đã bị mất kết nối và không còn nằm trong quorum) của cụm Ceph không hoạt động (mon.pve01). Các Monitor đóng vai trò quan trọng trong việc duy trì trạng thái và đồng thuận của cụm. Mặc dù cụm vẫn duy trì được quorum (tức là vẫn có đủ số lượng monitor để đưa ra quyết định), nhưng việc mất một monitor làm giảm độ dự phòng và tăng nguy cơ nếu một monitor khác gặp sự cố.

OSD_DOWN: 4 osds down.

Có 4 OSD (Object Storage Daemon) không hoạt động. Các OSD osd.0, osd.1, osd.2, osd.3 đều không hoạt động. Tất cả các OSD này đều nằm trên cùng một máy chủ pve01. OSD chịu trách nhiệm lưu trữ dữ liệu và khi chúng không hoạt động, khả năng truy cập và an toàn của dữ liệu có thể bị ảnh hưởng.

OSD_HOST_DOWN: 1 host (4 osds) down.

Một máy chủ (host) chứa 4 OSD không hoạt động. Máy chủ pve01 chứa các OSD osd.0, osd.1, osd.2, osd.3 đã bị mất kết nối. Điều này thường xảy ra khi máy chủ gặp sự cố, khiến toàn bộ OSD trên máy chủ đó không thể truy cập được.

PG_DEGRADED: Degraded data redundancy: 867579/2618374 objects degraded (33.134%), 678 pgs degraded, 678 pgs undersized.

Có một lượng lớn các object (33.134%) đang trong tình trạng degraded, nghĩa là dữ liệu của chúng không được sao lưu đầy đủ và có nguy cơ mất mát nếu các OSD khác cũng gặp sự cố. Có 678 Placement Groups (PG) bị đánh dấu là thiếu bản sao (degraded) do không có đủ bản sao (undersized).

  • Chi tiết:
    • Mỗi PG trong danh sách đều ở trạng thái active+undersized+degraded. Điều này có nghĩa là chúng vẫn đang hoạt động nhưng không có đủ số bản sao cần thiết, và dữ liệu không được sao lưu đầy đủ.
    • Ví dụ:
      • pg 2.3b7 is active+undersized+degraded, acting [4]: PG 2.3b7 đang ở trạng thái hoạt động, thiếu bản sao (undersized) và dữ liệu bị đánh dấu là thiếu bản sao (degraded). Hiện tại nó đang hoạt động trên OSD 4.
      • pg 2.3c1 is stuck undersized for 5m, current state active+undersized+degraded, last acting [4]: PG 2.3c1 đã bị stusk (kẹt) trong trạng thái thiếu bản sao trong 5 phút qua, chúng vẫn đang hoạt động nhưng thiếu bản sao cần thiết và dữ liệu không an toàn.

3.3. Tường hợp khi có device hỏng nhưng hệ thống chưa thực hiện rebalance.

Đầu ra của lệnh ceph health detail trường hợp này và trường hợp trên thể hiện các vấn đề liên quan đến tình trạng của cluster Ceph, nhưng chúng có những khác biệt về số liệu và trạng thái.

shell> ceph health detail
HEALTH_WARN 1/3 mons down, quorum pve02,pve03; 4 osds down; 1 host (4 osds) down; 1 root (4 osds) down; Degraded data redundancy: 802670/2618380 objects degraded (30.655%), 630 pgs degraded, 630 pgs undersized
[WRN] MON_DOWN: 1/3 mons down, quorum pve02,pve03
    mon.pve01 (rank 0) addr [v2:10.10.20.1:3300/0,v1:10.10.20.1:6789/0] is down (out of quorum)
[WRN] OSD_DOWN: 4 osds down
    osd.0 (root=default,host=pve01) is down
    osd.1 (root=default,host=pve01) is down
    osd.2 (root=default,host=pve01) is down
    osd.3 (root=default,host=pve01) is down
[WRN] OSD_HOST_DOWN: 1 host (4 osds) down
    host pve01 (root=default) (4 osds) is down
[WRN] OSD_ROOT_DOWN: 1 root (4 osds) down
    root default (4 osds) is down
[WRN] PG_DEGRADED: Degraded data redundancy: 802670/2618380 objects degraded (30.655%), 630 pgs degraded, 630 pgs undersized
    pg 2.3b2 is active+undersized+degraded+remapped+backfill_wait, acting [5]
    pg 2.3b3 is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [6]
    pg 2.3b4 is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [8]
    pg 2.3b7 is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [4]
    pg 2.3b9 is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [7]
    pg 2.3ba is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [6]

<đã lược bỏ bớt logs>

    pg 2.3f7 is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [6]
    pg 2.3f8 is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [6]
    pg 2.3fb is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [11]
    pg 2.3fe is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [8]
    pg 2.3ff is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [9]

Trong trường hợp này, có thông tin thêm về OSD_ROOT_DOWN lý do là mình đã move host down về root default, trường hợp này là pve01. Khi một host bị đánh dấu là down và nếu được di chuyển về “root default”, hệ thống Ceph sẽ tính toán lại và xử lý lại dữ liệu theo cách khác.

Sau khi di chuyển host down về “root default”, Ceph sẽ thực hiện tính toán lại và xử lý dữ liệu. Điều này có thể dẫn đến tình trạng OSD_ROOT_DOWN, nơi Ceph tính toán lại và cập nhật các thông tin về tình trạng PGs. Trong trường hợp này, các PGs bị ảnh hưởng sẽ được xử lý và có thể có thêm các trạng thái như “remapped” hoặc “backfill_wait”, thể hiện quá trình điều chỉnh và đồng bộ lại dữ liệu từ các OSD mới.

Bạn hãy để ý ví dụ cách nó xử lý PGs dưới đây.

pg 2.3f7 is stuck undersized for 4m, current state active+undersized+degraded+remapped+backfill_wait, last acting [6]

Kết quả của pg 2.3f7 cho ta thấy các thông tin như sau:

  • active: PG này đang hoạt động và có thể thực hiện các thao tác đọc/ghi.
  • undersized: PG này thiếu bản sao vì một hoặc nhiều OSDs không có mặt.
  • degraded: Một số dữ liệu bị mất hoặc không có sẵn, do đó PG không đáp ứng được mức độ dự phòng.
  • remapped: PG đã được ánh xạ lại sang các OSD khác, thường là do OSD bị hỏng hoặc bị gỡ bỏ.
  • backfill_wait: PG đang chờ quá trình backfilling (đồng bộ hóa) bắt đầu.

Khi PG đang ở trạng thái backfill_wait, điều đó có nghĩa là quá trình đồng bộ hóa dữ liệu cho PG này vẫn chưa bắt đầu, có thể là do chờ đợi quá trình backfilling được khởi động hoặc có thể có vấn đề khác đang xảy ra.

last acting chỉ ra OSDs đã phục vụ các thao tác cuối cùng cho PG đó tại thời điểm lệnh ceph health detail được thực thi. Cụ thể:

  • last acting [n]: Là OSDs đã thực hiện các thao tác cuối cùng trên PG này. Đây không phải là trạng thái hiện tại của OSD mà chỉ là OSD đã phục vụ dữ liệu gần nhất.
  • OSD bị hỏng hoặc không có mặt: Nếu OSD này bị hỏng hoặc không còn hoạt động, nó có thể dẫn đến tình trạng undersizeddegraded cho PG, vì PG cần có đủ bản sao trên các OSD khác.
  • OSD đang hoạt động nhưng thiếu bản sao: Nếu OSD này đang hoạt động nhưng thiếu bản sao của PG, tình trạng undersizeddegraded có thể xảy ra vì dữ liệu không đủ dự phòng trên tất cả các OSD.

Như vậy, last acting giúp xác định OSD nào đã tham gia vào các thao tác gần nhất đối với PG, nhưng để hiểu rõ tình trạng hiện tại của PG, cần kiểm tra trạng thái của OSD này (nó có hoạt động hay không) và các vấn đề liên quan đến đồng bộ hóa hoặc tái cân bằng dữ liệu.

4. Tìm hiểu các thông báo của lệnh ceph pg dump_stuck.

4.1. Trường hợp hệ thống bình thường.

shell> ceph pg dump_stuck
ok

4.2. Trường hợp khi có device hỏng nhưng hệ thống chưa thực hiện rebalance.

Lệnh ceph pg dump_stuck tiếp tục liệt kê các Placement Groups (PGs) đang trong trạng thái bị kẹt (stuck). Đây là các PG vẫn ở trạng thái “active”, nhưng thiếu bản sao (undersized) và bị hỏng dữ liệu (degraded). Các trạng thái này cho thấy rằng các PG đang hoạt động, nhưng không đáp ứng đủ số lượng bản sao cần thiết, dẫn đến khả năng mất dữ liệu nếu các OSD đang giữ bản sao này gặp sự cố.

shell> ceph pg dump_stuck
PG_STAT  STATE                       UP    UP_PRIMARY  ACTING  ACTING_PRIMARY
2.21a    active+undersized+degraded  [11]          11    [11]              11
2.219    active+undersized+degraded   [5]           5     [5]               5
2.218    active+undersized+degraded   [9]           9     [9]               9
2.217    active+undersized+degraded   [9]           9     [9]               9
2.216    active+undersized+degraded   [5]           5     [5]               5

<đã lược bỏ bớt logs>

2.142    active+undersized+degraded   [8]           8     [8]               8
2.147    active+undersized+degraded   [5]           5     [5]               5
2.148    active+undersized+degraded   [6]           6     [6]               6
2.14b    active+undersized+degraded   [5]           5     [5]               5
2.14f    active+undersized+degraded   [5]           5     [5]               5
ok
  • PG_STAT: Tên hoặc ID của PG.
  • STATE: Trạng thái hiện tại của PG.
    • active: PG đang hoạt động và có thể phục vụ các yêu cầu đọc/ghi.
    • undersized: PG không có đủ số bản sao cần thiết. Điều này có thể làm giảm độ tin cậy và an toàn của dữ liệu.
    • degraded: Một số bản sao của dữ liệu không có sẵn, nghĩa là nếu có thêm lỗi xảy ra, dữ liệu có thể bị mất.
  • UPUP_PRIMARY
    • UP: Danh sách các OSD hiện đang chịu trách nhiệm cho PG này. Ví dụ: [11] nghĩa là OSD số 11 đang chịu trách nhiệm cho PG này.
    • UP_PRIMARY: OSD chịu trách nhiệm chính (primary) cho PG. Ví dụ: 11 nghĩa là OSD số 11 là OSD primary cho PG này.
  • ACTINGACTING_PRIMARY
  • ACTING: Danh sách các OSD hiện tại đang acting cho PG này, tức là các OSD này đang giữ dữ liệu thực tế. Ví dụ: [11] nghĩa là OSD số 11 đang giữ dữ liệu cho PG này.
  • ACTING_PRIMARY: OSD acting chính (primary) cho PG này. Ví dụ: 11 nghĩa là OSD số 11 là acting primary cho PG này.

Tất cả các PG được liệt kê đều ở trạng thái active+undersized+degraded, nghĩa là chúng vẫn đang hoạt động nhưng thiếu số lượng bản sao cần thiết và dữ liệu không được sao lưu đầy đủ.

Mỗi PG chỉ có một OSD duy nhất đang giữ dữ liệu (undersized), dẫn đến trạng thái degraded. Điều này làm giảm độ an toàn và độ tin cậy của dữ liệu, vì nếu OSD duy nhất này gặp sự cố, dữ liệu có thể bị mất.

Các OSD 11, 5, 9, 8 đang chịu trách nhiệm chính cho các PG này. Nếu bạn có thể khôi phục thêm OSD hoặc cải thiện tình trạng của cụm, trạng thái undersizeddegraded có thể được giải quyết.

  • Ví dụ:
    • PG 2.21a:
      • Trạng thái: active+undersized+degraded.
      • OSD chịu trách nhiệm: [11] – OSD số 11 đang là OSD duy nhất giữ dữ liệu cho PG này.
      • Primary OSD: 11 – OSD số 11 là primary.
    • PG 2.219:
      • Trạng thái: active+undersized+degraded.
      • OSD chịu trách nhiệm: [5] – OSD số 5 đang giữ dữ liệu cho PG này.
      • Primary OSD: 5 – OSD số 5 là primary.

Bạn cần phải khôi phục các OSD bị lỗi hoặc thêm OSD mới để tăng số lượng bản sao của các PG, giúp giải quyết trạng thái undersizeddegraded.

4.3. Trường hợp khi có device hỏng và hệ thống đang thực hiện rebalance.

Log này cho ta biết Ceph đang cố gắng chuyển dữ liệu từ các OSD cũ sang các OSD mới và đảm bảo rằng dữ liệu được sao chép đầy đủ và nhất quán trước khi hoàn tất quá trình rebalance.

Ở cột STATE chúng ta nhìn log ở phần trên (4.1) khi cluster chưa bắt đầu rebalance, các PG ở trạng thái active+undersized+degraded. Còn log ở dưới đây là đang trong quá trình rebalance, trạng thái remapped, backfill_wait, và backfilling xuất hiện, thể hiện rằng Ceph đang tìm cách đồng bộ lại dữ liệu.

shell> ceph pg dump_stuck
PG_STAT  STATE                                              UP      UP_PRIMARY  ACTING  ACTING_PRIMARY
2.21a    active+undersized+degraded+remapped+backfill_wait  [11,5]          11    [11]              11
2.211    active+undersized+degraded+remapped+backfill_wait   [8,7]           8     [8]               8
2.210    active+undersized+degraded+remapped+backfill_wait  [7,11]           7     [4]               4
2.20e                        active+remapped+backfill_wait  [7,11]           7   [7,8]               7
2.20d    active+undersized+degraded+remapped+backfill_wait  [10,4]          10    [10]              10
2.209    active+undersized+degraded+remapped+backfill_wait  [5,11]           5     [5]               5

<đã lược bỏ bớt logs>

2.36b    active+undersized+degraded+remapped+backfill_wait   [6,9]           6     [6]               6
2.14e      active+undersized+degraded+remapped+backfilling  [5,10]           5     [5]               5
2.284      active+undersized+degraded+remapped+backfilling   [5,9]           5     [9]               9
2.6b     active+undersized+degraded+remapped+backfill_wait  [10,7]          10    [10]              10
2.22     active+undersized+degraded+remapped+backfill_wait  [11,4]          11     [4]               4
2.1f                            active+undersized+remapped  [4,10]           4     [4]               4
2.1c     active+undersized+degraded+remapped+backfill_wait  [7,11]           7     [7]               7
2.14f    active+undersized+degraded+remapped+backfill_wait  [7,11]           7     [5]               5
ok

Ở cột UP, khi rebalance chưa bắt đầu, chỉ có một OSD được liệt kê. Khi rebalance diễn ra, nhiều OSD có thể xuất hiện trong cột này, cho thấy rằng PG đã được ánh xạ lại và đang trong quá trình đồng bộ sang OSD mới.

Tương tự, ở cột ACTING khi rebalance chưa diễn ra, cột này giống với cột UP. Trong quá trình rebalance, cột ACTING có thể khác với cột UP, điều này cho thấy rằng dữ liệu đang được di chuyển từ các OSD cũ sang các OSD mới.

5. Tìm hiểu các thông báo của lệnh ceph pg dump.

5.1. Trường hợp hệ thống bình thường.

shell> ceph pg dump
version 84559
stamp 2024-08-20T22:07:40.370182+0700
last_osdmap_epoch 0
last_pg_scan 0
PG_STAT  OBJECTS  MISSING_ON_PRIMARY  DEGRADED  MISPLACED  UNFOUND  BYTES      OMAP_BYTES*  OMAP_KEYS*  LOG   LOG_DUPS  DISK_LOG  STATE         STATE_STAMP                      VERSION      REPORTED     UP      UP_PRIMARY  ACTING  ACTING_PRIMARY  LAST_SCRUB   SCRUB_STAMP                      LAST_DEEP_SCRUB  DEEP_SCRUB_STAMP                 SNAPTRIMQ_LEN  LAST_SCRUB_DURATION  SCRUB_SCHEDULING                                            OBJECTS_SCRUBBED  OBJECTS_TRIMMED
2.21b         47                   0         0          0        0  197132288            0           0  1563      3000      1563  active+clean  2024-08-20T00:23:57.362078+0700  4867'135137  4867:185181  [11,7]          11  [11,7]              11  4858'135033  2024-08-20T00:23:57.361921+0700         110'2142  2024-08-16T05:58:10.880874+0700              0                    1  periodic scrub scheduled @ 2024-08-21T04:18:40.301212+0700                50                0
2.21a         54                   0         0          0        0  226492416            0           0  1735      3000      1735  active+clean  2024-08-19T21:23:41.456774+0700   4867'69602  4867:116034  [2,11]           2  [2,11]               2   4858'68458  2024-08-19T21:23:41.456614+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-21T04:26:31.534849+0700                58                0
2.219         46                   0         0          0        0  192937984            0           0  1690      3000      1690  active+clean  2024-08-20T00:38:38.674371+0700   4867'23306   4867:78640   [0,5]           0   [0,5]               0   4860'23274  2024-08-20


2.3fa         41                   0         0          0        0  170483712            0           0  1594      3000      1594  active+clean  2024-08-20T00:47:07.776808+0700   4867'21439   4867:68879  [10,4]          10  [10,4]              10   4860'21246  2024-08-20T00:47:07.776636+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-21T04:13:41.747577+0700                41                0
2.3fb         35                   0         0          0        0  145268736            0           0  1576      3000      1576  active+clean  2024-08-19T17:49:46.831820+0700   4867'24062   4867:78140  [11,3]          11  [11,3]              11   4856'24046  2024-08-19T17:49:46.831660+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-21T04:06:31.573126+0700                35                0
2.3fc         42                   0         0          0        0  176160768            0           0  1521      3000      1521  active+clean  2024-08-19T18:25:20.652957+0700   4867'22321   4867:66463  [11,6]          11  [11,6]              11   4856'22229  2024-08-19T18:25:20.652764+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-21T03:30:19.394611+0700                42                0
2.3fd         32                   0         0          0        0  134217728            0           0  1740      3000      1740  active+clean  2024-08-20T00:19:31.024382+0700   4867'19062   4867:60052   [0,9]           0   [0,9]               0   4860'19014  2024-08-20T00:19:31.024338+0700       4860'19014  2024-08-20T00:19:31.024338+0700              0                    1  periodic scrub scheduled @ 2024-08-21T02:43:41.842658+0700                36                0
2.3fe         46                   0         0          0        0  192937984            0           0  1636      3000      1636  active+clean  2024-08-19T18:59:51.501613+0700   4867'27928   4867:76418   [8,1]           8   [8,1]               8   4857'27913  2024-08-19T18:59:51.501445+0700       4776'24049  2024-08-18T18:56:01.071912+0700              0                    1  periodic scrub scheduled @ 2024-08-20T22:20:07.912254+0700                47                0
2.3ff         33                   0         0          0        0  138412032            0           0  1588      3000      1588  active+clean  2024-08-19T20:09:56.388231+0700   4867'25081   4867:72733   [3,9]           3   [3,9]               3   4857'24270  2024-08-19T20:09:56.388081+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-21T06:29:30.967150+0700                42                0

6      0  0  0  0  0             0    0   0        0        0
5      8  0  0  0  0             0    0   0       27       27
4      2  0  0  0  0           182    0   0        4        4
3      4  0  0  0  0          1386    0   0        4        4
2  41223  0  0  0  0  172488838549  900  96  1652348  1652348
1      2  0  0  0  0       1114656    0   0     1564     1564

sum  41239  0  0  0  0  172489954773  900  96  1653947  1653947
OSD_STAT  USED     AVAIL    USED_RAW  TOTAL    HB_PEERS                 PG_SUM  PRIMARY_PG_SUM
10         28 GiB  1.8 TiB    28 GiB  1.8 TiB   [0,1,2,3,4,5,6,7,9,11]     200             108
8          28 GiB  1.8 TiB    28 GiB  1.8 TiB   [0,1,2,3,4,5,6,7,9,11]     191              96
11         29 GiB  1.8 TiB    29 GiB  1.8 TiB   [0,1,2,3,4,5,6,7,9,10]     201              94
9          28 GiB  1.8 TiB    28 GiB  1.8 TiB   [0,1,2,3,4,5,6,7,8,10]     189              98
7          29 GiB  1.8 TiB    29 GiB  1.8 TiB  [0,1,2,3,5,6,8,9,10,11]     197              94
6          29 GiB  1.8 TiB    29 GiB  1.8 TiB  [0,1,2,3,5,7,8,9,10,11]     189              96
5          28 GiB  1.8 TiB    28 GiB  1.8 TiB  [0,1,2,3,4,6,8,9,10,11]     194              86
4          29 GiB  1.8 TiB    29 GiB  1.8 TiB  [0,1,2,3,5,7,8,9,10,11]     191              94
3          28 GiB  1.8 TiB    28 GiB  1.8 TiB  [1,2,4,5,6,7,8,9,10,11]     194             103
2          28 GiB  1.8 TiB    28 GiB  1.8 TiB  [1,3,4,5,6,7,8,9,10,11]     182              96
1          29 GiB  1.8 TiB    29 GiB  1.8 TiB  [0,2,4,5,6,7,8,9,10,11]     197              94
0          28 GiB  1.8 TiB    28 GiB  1.8 TiB  [1,3,4,5,6,7,8,9,10,11]     181              94
sum       341 GiB   21 TiB   341 GiB   22 TiB

* NOTE: Omap statistics are gathered during deep scrub and may be inaccurate soon afterwards depending on utilization. See http://docs.ceph.com/en/latest/dev/placement-group/#omap-statistics for further details.
dumped all

5.2. Trường hợp khi có device hỏng nhưng hệ thống chưa thực hiện rebalance.

Lệnh ceph pg dump xuất ra thông tin chi tiết về trạng thái của các Placement Groups (PGs) trong hệ thống Ceph.

shell> ceph pg dump
version 74633
stamp 2024-08-18T17:34:37.801050+0700
last_osdmap_epoch 0
last_pg_scan 0
PG_STAT  OBJECTS  MISSING_ON_PRIMARY  DEGRADED  MISPLACED  UNFOUND  BYTES       OMAP_BYTES*  OMAP_KEYS*  LOG   LOG_DUPS  DISK_LOG  STATE                       STATE_STAMP                      VERSION      REPORTED     UP      UP_PRIMARY  ACTING  ACTING_PRIMARY  LAST_SCRUB   SCRUB_STAMP                      LAST_DEEP_SCRUB  DEEP_SCRUB_STAMP                 SNAPTRIMQ_LEN  LAST_SCRUB_DURATION  SCRUB_SCHEDULING                                            OBJECTS_SCRUBBED  OBJECTS_TRIMMED
2.3ff       1276                   0      1276          0        0  5339127808            0           0  1882      3000      1882  active+undersized+degraded  2024-08-18T17:26:43.010369+0700   3817'19723   3817:64272     [9]           9     [9]               9   3808'19177  2024-08-18T14:22:28.716088+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T15:22:17.657537+0700              1276                0
2.3fe       1303                   0      1303          0        0  5459230720            0           0  1838      3000      1838  active+undersized+degraded  2024-08-18T17:26:43.005287+0700   3817'23551   3817:68106     [8]           8     [8]               8   3755'19438  2024-08-17T16:02:17.497942+0700       3755'19438  2024-08-17T16:02:17.497942+0700              0                   33  periodic scrub scheduled @ 2024-08-19T01:04:08.180901+0700              1363                0
2.3fd       1253                   0      1253          0        0  5245313024            0           0  1247      3000      1247  active+undersized+degraded  2024-08-18T17:26:43.009870+0700   3810'17540   3817:55614     [9]           9     [9]               9   3737'17486  2024-08-17T17:51:28.395987+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T03:31:15.452418+0700                28                0
2.3fc       1320                   0         0          0        0  5527199744            0           0  1727      3000      1727                active+clean  2024-08-18T08:52:12.779167+0700   3812'20525   3817:60779  [11,6]          11  [11,6]              11   3805'20337  2024-08-18T08:52:12.779021+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T08:57:06.051963+0700              1320                0
2.3fb       1295                   0      1295          0        0  5426122752            0           0  1753      3000      1753  active+undersized+degraded  2024-08-18T17:26:43.008079+0700   3812'22396   3817:72548    [11]          11    [11]              11   3810'22002  2024-08-18T15:20:29.611084+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-20T01:30:23.579622+0700              1295                0
2.3fa       1240                   0         0          0        0  5191311360            0           0  1772      3000      1772                active+clean  2024-08-18T16:50:47.416119+0700   3810'19320   3817:59411  [10,5]          10  [10,5]              10   3810'19320  2024-08-18T16:50:47.415911+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T21:22:24.376709+0700              1240                0
2.3f9       1282                   0         0          0        0  5370003456            0           0  1765      3000      1765                active+clean  2024-08-18T06:19:12.873413+0700   3812'26599   3817:75389  [5,11]           5  [5,11]               5   3805'26588  2024-08-18T06:19:12.873121+0700         106'3090  2024-08-16T04:01:04.041522+0700              0                    1  periodic scrub scheduled @ 2024-08-19T13:10:15.653924+0700              1282                0

<đã lược bỏ bớt logs>

2.214       1305                   0         0          0        0  5470228480            0           0  1760      3000      1760                active+clean  2024-08-17T23:36:09.093391+0700   3807'20037   3817:68525  [11,6]          11  [11,6]              11    909'15590  2024-08-17T06:55:29.432149+0700         106'2847  2024-08-16T02:54:30.542013+0700              0                    1  periodic scrub scheduled @ 2024-08-18T18:31:23.890040+0700              1354                0
2.215       1296                   0         0          0        0  5428994048            0           0  1779      3000      1779                active+clean  2024-08-17T23:36:11.181998+0700   3812'18942   3817:60581   [7,8]           7   [7,8]               7   2070'18490  2024-08-17T19:50:33.760411+0700         115'2667  2024-08-16T11:24:22.596630+0700              0                    1  periodic scrub scheduled @ 2024-08-18T21:28:46.963793+0700              1353                0
2.216       1280                   0      1280          0        0  5350797312            0           0  1789      3000      1789  active+undersized+degraded  2024-08-18T17:26:46.340401+0700   3808'18612   3817:58445     [5]           5     [5]               5   3750'17946  2024-08-17T13:52:29.002353+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-18T20:59:48.160541+0700                35                0
2.217       1208                   0      1208          0        0  5060395008            0           0  1821      1241      1821  active+undersized+degraded  2024-08-18T17:26:43.006934+0700   3805'17035   3817:54475     [9]           9     [9]               9   3737'16974  2024-08-17T20:22:49.600828+0700         115'2684  2024-08-16T10:22:04.659219+0700              0                    1  periodic scrub scheduled @ 2024-08-19T04:55:05.440969+0700                34                0
2.218       1249                   0      1249          0        0  5216612369            0           0  1872      3000      1872  active+undersized+degraded  2024-08-18T17:26:43.009735+0700   3811'18055   3817:53916     [9]           9     [9]               9   3811'18055  2024-08-18T16:46:06.984188+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-20T00:00:19.129574+0700              2360                0
2.219       1300                   0      1300          0        0  5436641280            0           0  1840      1585      1840  active+undersized+degraded  2024-08-18T17:26:46.338647+0700   3811'21493   3817:70294     [5]           5     [5]               5   2070'21068  2024-08-17T15:17:43.262771+0700         114'4482  2024-08-16T09:36:28.893066+0700              0                    1  periodic scrub scheduled @ 2024-08-18T18:14:04.812925+0700              1365                0
2.21a       1219                   0      1219          0        0  5102120960            0           0  1858      3000      1858  active+undersized+degraded  2024-08-18T17:26:43.011033+0700   3812'66407  3817:109120    [11]          11    [11]              11   3810'66400  2024-08-18T16:09:56.703016+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-20T03:07:46.805483+0700              1219                0
2.21b       1247                   0         0          0        0  5224353792            0           0  1803      3000      1803                active+clean  2024-08-17T23:36:15.000379+0700  3812'133134  3817:178931  [11,7]          11  [11,7]              11   2070'39866  2024-08-17T10:22:50.378729+0700         110'2142  2024-08-16T05:58:10.880874+0700              0                    1  periodic scrub scheduled @ 2024-08-18T19:07:27.211814+0700                23                0

2  1309185  0  867579  0  0  5480615525155  674  72  1800828  1800828
1        2  0       0  0  0         983584    0   0     1138     1138

sum  1309187  0  867579  0  0  5480616508739  674  72  1801966  1801966
OSD_STAT  USED     AVAIL     USED_RAW  TOTAL    HB_PEERS                 PG_SUM  PRIMARY_PG_SUM
11        869 GiB   994 GiB   869 GiB  1.8 TiB         [4,5,6,7,8,9,10]     175             123
10        852 GiB  1011 GiB   852 GiB  1.8 TiB         [4,5,6,7,8,9,11]     172             129
9         824 GiB   1.0 TiB   824 GiB  1.8 TiB        [4,5,6,7,8,10,11]     166             135
8         822 GiB   1.0 TiB   822 GiB  1.8 TiB        [4,5,6,7,9,10,11]     167             120
7         853 GiB  1010 GiB   853 GiB  1.8 TiB        [4,5,6,8,9,10,11]     172             131
6         867 GiB   996 GiB   867 GiB  1.8 TiB        [4,5,7,8,9,10,11]     175             132
5         869 GiB   994 GiB   869 GiB  1.8 TiB        [4,6,7,8,9,10,11]     176             126
4         836 GiB   1.0 TiB   836 GiB  1.8 TiB        [5,6,7,8,9,10,11]     169             129
3         826 GiB   1.0 TiB   826 GiB  1.8 TiB  [1,2,4,5,6,7,8,9,10,11]       0               0
2         834 GiB   1.0 TiB   834 GiB  1.8 TiB  [1,3,4,5,6,7,8,9,10,11]       0               0
1         871 GiB   992 GiB   871 GiB  1.8 TiB  [0,2,4,5,6,7,8,9,10,11]       0               0
0         833 GiB   1.0 TiB   833 GiB  1.8 TiB  [1,3,4,5,6,7,8,9,10,11]       0               0
sum       9.9 TiB    12 TiB   9.9 TiB   22 TiB

* NOTE: Omap statistics are gathered during deep scrub and may be inaccurate soon afterwards depending on utilization. See http://docs.ceph.com/en/latest/dev/placement-group/#omap-statistics for further details.
dumped all
  • PG_STAT Section
    • OBJECTS: Số lượng object trong PG.
    • MISSING_ON_PRIMARY: Số lượng object bị mất trên OSD chính.
    • DEGRADED: Số lượng object đang ở trạng thái không đủ bản sao.
    • MISPLACED: Số lượng object không nằm ở vị trí mong muốn.
    • BYTES: Dung lượng dữ liệu được lưu trữ trong PG.
    • STATE: Trạng thái của PG. Trạng thái active+undersized+degraded cho biết PG đang hoạt động nhưng thiếu bản sao và có một số object chưa đủ số lượng bản sao yêu cầu. active+clean cho biết PG đang ở trạng thái tốt, tất cả dữ liệu đã được đồng bộ.

Ví dụ:

  • PG 2.3ff có 1276 object, tất cả đều ở trạng thái suy giảm (degraded) và trạng thái chung của PG là active+undersized+degraded.
  • PG 2.3fc có 1320 object, tất cả đều ở trạng thái active+clean, nghĩa là PG này không gặp vấn đề nào.
  • OSD_STAT Section
    • USED: Dung lượng đã sử dụng trên OSD.
    • AVAIL: Dung lượng còn trống trên OSD.
    • USED_RAW: Tổng dung lượng đã sử dụng bao gồm cả dữ liệu và các bản sao.
    • TOTAL: Tổng dung lượng lưu trữ của OSD.
    • HB_PEERS: Danh sách các OSD mà OSD hiện tại duy trì kết nối heartbeat.
    • PG_SUM: Tổng số PG mà OSD hiện tại đang tham gia.
    • PRIMARY_PG_SUM: Số lượng PG mà OSD hiện tại là OSD chính.

Ví dụ OSD 11 đã sử dụng 869 GiB, còn trống 994 GiB, và tổng dung lượng là 1.8 TiB. OSD này tham gia vào 175 PG, trong đó nó là OSD chính cho 123 PG.

  • Sự cố cần chú ý.
    • PGs ở trạng thái degraded và undersized: Các PG này thiếu một số bản sao cần thiết. Điều này có thể xảy ra khi một hoặc nhiều OSD gặp sự cố hoặc bị mất.
    • Sự phân bố dung lượng không đồng đều: Cần kiểm tra xem các OSD có được phân bố tải trọng một cách hợp lý hay không, vì một số OSD có thể đầy trong khi các OSD khác vẫn còn nhiều dung lượng trống.

5.3. Trường hợp khi có device hỏng và hệ thống đang thực hiện rebalance.

Trong khi quá trình rebalance, các PG trong trạng thái bị degraded đang được xử lý để trở về trạng thái clean, và quá trình này thường đi kèm với việc remap và backfill dữ liệu giữa các OSD.

shell> ceph pg dump
version 75031
stamp 2024-08-18T17:45:49.551069+0700
last_osdmap_epoch 0
last_pg_scan 0
PG_STAT  OBJECTS  MISSING_ON_PRIMARY  DEGRADED  MISPLACED  UNFOUND  BYTES       OMAP_BYTES*  OMAP_KEYS*  LOG   LOG_DUPS  DISK_LOG  STATE                                              STATE_STAMP                      VERSION      REPORTED     UP      UP_PRIMARY  ACTING  ACTING_PRIMARY  LAST_SCRUB   SCRUB_STAMP                      LAST_DEEP_SCRUB  DEEP_SCRUB_STAMP                 SNAPTRIMQ_LEN  LAST_SCRUB_DURATION  SCRUB_SCHEDULING                                            OBJECTS_SCRUBBED  OBJECTS_TRIMMED
2.3ff       1276                   0      1276          0        0  5339127808            0           0  1078      3000      1078  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:43.049563+0700   3878'19811   3878:64435   [9,5]           9     [9]               9   3808'19177  2024-08-18T14:22:28.716088+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-20T01:38:37.673790+0700              1276                0
2.3fe       1303                   0      1303          0        0  5460398080            0           0  1845      3000      1845  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:43.035725+0700   3817'23658   3878:68288   [8,4]           8     [8]               8   3755'19438  2024-08-17T16:02:17.497942+0700       3755'19438  2024-08-17T16:02:17.497942+0700              0                   33  periodic scrub scheduled @ 2024-08-18T19:46:32.675801+0700              1363                0
2.3fd       1253                   0         0          0        0  5245313024            0           0  1247      1753      1247                                       active+clean  2024-08-18T17:42:54.950787+0700   3810'17540   3877:58199   [6,9]           6   [6,9]               6   3737'17486  2024-08-17T17:51:28.395987+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-18T19:58:51.890561+0700                28                0
2.3fc       1320                   0         0          0        0  5527199744            0           0  1727      3000      1727                                       active+clean  2024-08-18T08:52:12.779167+0700   3812'20525   3877:60846  [11,6]          11  [11,6]              11   3805'20337  2024-08-18T08:52:12.779021+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T08:57:06.051963+0700              1320                0
2.3fb       1295                   0      1295          0        0  5426122752            0           0  1753      3000      1753  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:43.039240+0700   3812'22396   3877:72622  [11,7]          11    [11]              11   3810'22002  2024-08-18T15:20:29.611084+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-20T02:52:08.557304+0700              1295                0
2.3fa       1240                   0         0          0        0  5191311360            0           0  1772      3000      1772                                       active+clean  2024-08-18T16:50:47.416119+0700   3810'19320   3877:59477  [10,5]          10  [10,5]              10   3810'19320  2024-08-18T16:50:47.415911+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T21:22:24.376709+0700              1240                0
2.3f9       1282                   0         0          0        0  5370003456            0           0  1765      3000      1765                                       active+clean  2024-08-18T06:19:12.873413+0700   3812'26599   3877:75454  [5,11]           5  [5,11]               5   3805'26588  2024-08-18T06:19:12.873121+0700         106'3090  2024-08-16T04:01:04.041522+0700              0                    1  periodic scrub scheduled @ 2024-08-19T13:10:15.653924+0700              1282                0
2.3f8       1261                   0      1261          0        0  5279813632            0           0  1313      3000      1313  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:43.031405+0700   3807'19685   3877:63255   [6,9]           6     [6]               6   2087'19492  2024-08-17T10:26:59.076999+0700       2087'19492  2024-08-17T10:26:59.076999+0700              0                   32  queued for scrub                                                        1317                0
2.3f7       1291                   0      1291       1291        0  5409898496            0           0  1863      2540      1863  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:33.061602+0700   3812'21768   3877:71822  [7,10]           7     [6]               6   3805'20818  2024-08-18T06:51:06.902219+0700       1928'14789  2024-08-17T05:18:43.034554+0700              0                    1  periodic scrub scheduled @ 2024-08-19T12:57:39.620256+0700              1291                0
2.3f6       1239                   0         0          0        0  5190410240            0           0  1818      3000      1818                                       active+clean  2024-08-18T16:20:21.916985+0700   3811'18277   3877:62555   [8,4]           8   [8,4]               8   3811'18277  2024-08-18T16:20:21.916826+0700       3767'18132  2024-08-17T16:13:53.266704+0700              0                    1  periodic scrub scheduled @ 2024-08-19T20:34:34.806079+0700              1239                0

<đã lược bỏ bớt logs>

2.3f5       1254                   0         0          0        0  5251915776            0           0  1562      3000      1562                                       active+clean  2024-08-17T23:36:13.126830+0700   3805'17580   3878:54663   [9,5]           9   [9,5]               9   3750'17119  2024-08-17T16:13:18.849637+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T01:14:42.018423+0700              1306                0
2.3f4       1303                   0      1303       1303        0  5460103168            0           0  1857      1529      1857  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:33.172935+0700   3812'22998   3877:74820  [10,6]          10    [11]              11   2070'22612  2024-08-17T10:28:43.205879+0700         112'3081  2024-08-16T08:19:11.139041+0700              0                    1  periodic scrub scheduled @ 2024-08-18T22:01:50.449066+0700                30                0
2.3f3       1226                   0      1226          0        0  5138169856            0           0  1810      3000      1810  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:33.145352+0700   3812'19294   3877:59672  [10,7]          10     [7]               7   3805'19292  2024-08-18T12:11:50.536841+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T21:37:03.637722+0700              1226                0
2.3f2       1222                   0         0          0        0  5116051456            0           0  1816      3000      1816                                       active+clean  2024-08-17T23:36:12.088302+0700   3807'22533   3877:71989   [8,4]           8   [8,4]               8   3787'22069  2024-08-17T20:46:58.484150+0700       3787'22069  2024-08-17T20:46:58.484150+0700              0                   31  periodic scrub scheduled @ 2024-08-19T00:11:14.300982+0700              1287                0
2.3f1       1277                   0      1277          0        0  5343719424            0           0  1133      3000      1133  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:46.368781+0700   3876'95689  3877:148656  [5,11]           5     [5]               5   3807'89927  2024-08-18T12:26:06.956675+0700       3318'69263  2024-08-17T12:21:54.386697+0700              0                    1  periodic scrub scheduled @ 2024-08-19T14:29:05.276827+0700              1277                0
2.3f0       1288                   0      1288          0        0  5386256384            0           0  1756      3000      1756  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:43.039127+0700   3812'20312   3877:55507   [9,7]           9     [9]               9   3811'20253  2024-08-18T16:52:08.544963+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-20T04:26:27.558210+0700              1288                0
2.3ef       1301                   0      1301          0        0  5450989568            0           0  1840      3000      1840  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:44.048400+0700   3812'18762   3879:63230  [4,11]           4     [4]               4   2070'17717  2024-08-17T16:02:06.154360+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  queued for scrub                                                          25                0
2.3ee       1292                   0      1292          0        0  5404332032            0           0  1860      3000      1860  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:33.129017+0700   3811'20625   3877:67073  [10,7]          10     [7]               7   2070'20175  2024-08-17T11:59:59.862404+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-18T21:50:18.855500+0700                38                0
2.3ed       1237                   0      1237       1237        0  5180698624            0           0  1248      1814      1248  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:33.154907+0700   3807'17674   3877:57147  [10,4]          10     [9]               9   3807'17674  2024-08-18T12:24:00.019618+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-19T12:25:45.250610+0700              1284                0
2.219       1300                   0      1300       1300        0  5436641280            0           0  1840      1585      1840  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:33.160140+0700   3811'21493   3877:70364  [4,11]           4     [5]               5   2070'21068  2024-08-17T15:17:43.262771+0700         114'4482  2024-08-16T09:36:28.893066+0700              0                    1  periodic scrub scheduled @ 2024-08-18T22:24:42.057179+0700              1365                0
2.21a       1219                   0      1219          0        0  5102120960            0           0  1858      3000      1858  active+undersized+degraded+remapped+backfill_wait  2024-08-18T17:42:43.038735+0700   3812'66407  3877:109193  [11,5]          11    [11]              11   3810'66400  2024-08-18T16:09:56.703016+0700              0'0  2024-08-14T23:51:37.352595+0700              0                    1  periodic scrub scheduled @ 2024-08-20T01:32:56.649742+0700              1219                0
2.21b       1247                   0         0          0        0  5224353792            0           0  1803      3000      1803                                       active+clean  2024-08-17T23:36:15.000379+0700  3812'133134  3877:178997  [11,7]          11  [11,7]              11   2070'39866  2024-08-17T10:22:50.378729+0700         110'2142  2024-08-16T05:58:10.880874+0700              0                    1  periodic scrub scheduled @ 2024-08-18T19:07:27.211814+0700                23                0

2  1309187  0  818009  215243  0  5480623373091  674  72  1749546  1749546
1        2  0       0       0  0         983584    0   0     1138     1138

sum  1309189  0  818009  215243  0  5480624356675  674  72  1750684  1750684
OSD_STAT  USED     AVAIL     USED_RAW  TOTAL    HB_PEERS                 PG_SUM  PRIMARY_PG_SUM
11        884 GiB   979 GiB   884 GiB  1.8 TiB         [4,5,6,7,8,9,10]     178             114
10        886 GiB   977 GiB   886 GiB  1.8 TiB         [4,5,6,7,8,9,11]     178             126
9         819 GiB   1.0 TiB   819 GiB  1.8 TiB        [4,5,6,7,8,10,11]     165             142
8         848 GiB  1015 GiB   848 GiB  1.8 TiB        [4,5,6,7,9,10,11]     172             123
7         899 GiB   964 GiB   899 GiB  1.8 TiB        [4,5,6,8,9,10,11]     181             135
6         902 GiB   961 GiB   902 GiB  1.8 TiB        [4,5,7,8,9,10,11]     181             130
5         889 GiB   974 GiB   889 GiB  1.8 TiB        [4,6,7,8,9,10,11]     180             115
4         857 GiB  1006 GiB   857 GiB  1.8 TiB        [5,6,7,8,9,10,11]     173             140
3         826 GiB   1.0 TiB   826 GiB  1.8 TiB  [1,2,4,5,6,7,8,9,10,11]       0               0
2         834 GiB   1.0 TiB   834 GiB  1.8 TiB  [1,3,4,5,6,7,8,9,10,11]       0               0
1         871 GiB   992 GiB   871 GiB  1.8 TiB  [0,2,4,5,6,7,8,9,10,11]       0               0
0         833 GiB   1.0 TiB   833 GiB  1.8 TiB  [1,3,4,5,6,7,8,9,10,11]       0               0
sum        10 TiB    12 TiB    10 TiB   22 TiB

* NOTE: Omap statistics are gathered during deep scrub and may be inaccurate soon afterwards depending on utilization. See http://docs.ceph.com/en/latest/dev/placement-group/#omap-statistics for further details.
dumped all

Trước khi Rebalance:

  • PG States:
    • Có một số PG ở trạng thái active+undersized+degraded, nghĩa là các PG này có một số OSD bị mất hoặc thiếu replica, khiến dữ liệu không được sao lưu đầy đủ.
    • Các PG ở trạng thái active+clean là các PG ổn định và đã hoàn tất việc sao lưu dữ liệu.

Trong khi Rebalance:

  • PG States:
    • Một số PG trước đây ở trạng thái active+undersized+degraded đã chuyển sang trạng thái phức tạp hơn là active+undersized+degraded+remapped+backfill_wait. Điều này cho thấy các PG này đang trong quá trình di chuyển hoặc sao chép dữ liệu để khôi phục số lượng replica.
    • Một số PG đã trở về trạng thái active+clean, nghĩa là chúng đã hoàn tất việc cân bằng lại và đã ổn định.

Sự khác biệt:

  • Trạng thái PG: Trong khi rebalance, xuất hiện thêm trạng thái remappedbackfill_wait bên cạnh các trạng thái cũ. Điều này chỉ ra rằng dữ liệu đang được phân phối lại giữa các OSD để đảm bảo tính toàn vẹn dữ liệu.
  • Log PG: Log PG trong trạng thái trước và trong khi rebalance có sự thay đổi về số lượng và chi tiết của log, phản ánh các hoạt động chuyển dữ liệu và backfill.

6. Tìm hiểu các thông báo của lệnh ceph osd dump

Thông tin ceph osd dump cung cấp toàn cảnh về cấu hình và trạng thái hoạt động của các thành phần trong cụm Ceph của bạn, bao gồm trạng thái OSD, cấu hình pool, và các quy tắc ánh xạ thủ công đã thiết lập cho các PG.

6.1. Trường hợp hệ thống bình thường.

Thông tin từ lệnh ceph osd dump cung cấp chi tiết về cấu hình và trạng thái hiện tại của các OSD trong cụm Ceph của bạn bao gồm:

  • Thông tin chung của cụm.
  • Thông tin về Pool (Mỗi pool là một tập hợp các objects được lưu trữ và quản lý trong cụm Ceph. Dưới đây là các trường quan trọng trong thông tin pool):
    • name: Tên của pool, ví dụ: .mgr, CEPH-NVME-01, .rgw.root.
    • replicated size: Số bản sao của mỗi objects được lưu trữ trong pool.
    • pg_num và pgp_num: Số lượng PG (Placement Groups) được phân bổ cho pool.
    • crush_rule: Quy tắc CRUSH được sử dụng để xác định cách các objects được phân bố trên các OSD
    • .flags: Các cờ đặc biệt của pool, ví dụ hashpspool, selfmanaged_snaps.
    • application: Ứng dụng sử dụng pool, ví dụ rbd, rgw.
  • Thông tin về các OSD (Mỗi OSD là một daemon quản lý một thiết bị lưu trữ trong cụm Ceph):
    • osd.X: Tên của OSD, ví dụ osd.0, osd.1.
    • up/in: Trạng thái của OSD, up (hoạt động) hoặc down (không hoạt động) và in (được đưa vào sử dụng trong cluster) hoặc out (không được sử dụng).
    • weight: Trọng số của OSD trong CRUSH map, xác định phần dung lượng của OSD được sử dụng.
    • last_clean_interval: Khoảng thời gian mà OSD được xem là không có lỗi hoặc vấn đề gì xảy ra.
    • addresses: Địa chỉ IP mà OSD sử dụng để giao tiếp.
shell> ceph osd dump
epoch 4867
fsid a5c33f84-8710-476b-9924-2a76e0395a73
created 2024-08-14T22:41:17.102990+0700
modified 2024-08-20T17:11:43.565766+0700
flags sortbitwise,recovery_deletes,purged_snapdirs,pglog_hardlimit
crush_version 71
full_ratio 0.95
backfillfull_ratio 0.9
nearfull_ratio 0.85
require_min_compat_client luminous
min_compat_client luminous
require_osd_release reef
stretch_mode_enabled false
pool 1 '.mgr' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 1 pgp_num 1 autoscale_mode on last_change 2065 flags hashpspool stripe_width 0 pg_num_max 32 pg_num_min 1 application mgr read_balance_score 11.76
pool 2 'CEPH-NVME-01' replicated size 2 min_size 2 crush_rule 1 object_hash rjenkins pg_num 1024 pgp_num 1024 autoscale_mode off last_change 4829 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd read_balance_score 1.10
pool 3 '.rgw.root' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4805 flags hashpspool stripe_width 0 application rgw read_balance_score 2.63
pool 4 'default.rgw.log' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4807 flags hashpspool stripe_width 0 application rgw read_balance_score 1.88
pool 5 'default.rgw.control' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4809 flags hashpspool stripe_width 0 application rgw read_balance_score 2.25
pool 6 'default.rgw.meta' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4811 flags hashpspool stripe_width 0 pg_autoscale_bias 4 application rgw read_balance_score 1.88
max_osd 12
osd.0 up   in  weight 1 up_from 4818 up_thru 4843 down_at 4815 last_clean_interval [3779,4814) [v2:10.10.20.1:6824/4174,v1:10.10.20.1:6825/4174] [v2:10.10.20.1:6826/4174,v1:10.10.20.1:6827/4174] exists,up 7e8b8f4d-6d13-4257-b10a-81b32734d0da
osd.1 up   in  weight 1 up_from 4822 up_thru 4843 down_at 4815 last_clean_interval [3779,4814) [v2:10.10.20.1:6802/4183,v1:10.10.20.1:6806/4183] [v2:10.10.20.1:6810/4183,v1:10.10.20.1:6814/4183] exists,up f0d66fe2-b73e-4830-9f37-94b27a43e7b1
osd.2 up   in  weight 1 up_from 4819 up_thru 4843 down_at 4815 last_clean_interval [3782,4814) [v2:10.10.20.1:6800/4186,v1:10.10.20.1:6803/4186] [v2:10.10.20.1:6805/4186,v1:10.10.20.1:6807/4186] exists,up 9334c599-a46f-42b3-9359-9ee554f061a7
osd.3 up   in  weight 1 up_from 4822 up_thru 4843 down_at 4815 last_clean_interval [3782,4814) [v2:10.10.20.1:6801/4189,v1:10.10.20.1:6804/4189] [v2:10.10.20.1:6808/4189,v1:10.10.20.1:6812/4189] exists,up 3f3cbd9d-8a18-45dc-8e54-f79b5eeb225c
osd.4 up   in  weight 1 up_from 3796 up_thru 4843 down_at 3790 last_clean_interval [3763,3789) [v2:10.10.20.2:6821/4136,v1:10.10.20.2:6824/4136] [v2:10.10.20.2:6826/4136,v1:10.10.20.2:6827/4136] exists,up 99b4c7a6-f990-4aaa-bf67-625e49722077
osd.5 up   in  weight 1 up_from 3797 up_thru 4843 down_at 3790 last_clean_interval [3762,3789) [v2:10.10.20.2:6800/4139,v1:10.10.20.2:6802/4139] [v2:10.10.20.2:6805/4139,v1:10.10.20.2:6808/4139] exists,up 97be6d8d-439c-440b-a56d-04e7f3e1c2f7
osd.6 up   in  weight 1 up_from 3793 up_thru 4843 down_at 3790 last_clean_interval [3762,3789) [v2:10.10.20.2:6803/4138,v1:10.10.20.2:6807/4138] [v2:10.10.20.2:6810/4138,v1:10.10.20.2:6814/4138] exists,up 1a516367-a28d-42a7-941e-1f26b3047e3f
osd.7 up   in  weight 1 up_from 3796 up_thru 4843 down_at 3790 last_clean_interval [3760,3789) [v2:10.10.20.2:6801/4133,v1:10.10.20.2:6804/4133] [v2:10.10.20.2:6806/4133,v1:10.10.20.2:6809/4133] exists,up 27790b1b-476f-4972-8d06-2d30ea856d8b
osd.8 up   in  weight 1 up_from 4842 up_thru 4842 down_at 4835 last_clean_interval [48,4834) [v2:10.10.20.3:6816/4246,v1:10.10.20.3:6817/4246] [v2:10.10.20.3:6818/4246,v1:10.10.20.3:6819/4246] exists,up 9dcf9cc4-cd94-4d68-8c62-109e3dbedab8
osd.9 up   in  weight 1 up_from 4840 up_thru 4840 down_at 4835 last_clean_interval [53,4834) [v2:10.10.20.3:6800/4247,v1:10.10.20.3:6801/4247] [v2:10.10.20.3:6802/4247,v1:10.10.20.3:6803/4247] exists,up 20a95da0-9827-417b-ae8b-b807f00761d1
osd.10 up   in  weight 1 up_from 4843 up_thru 4843 down_at 4836 last_clean_interval [57,4834) [v2:10.10.20.3:6820/4237,v1:10.10.20.3:6822/4237] [v2:10.10.20.3:6824/4237,v1:10.10.20.3:6826/4237] exists,up 1f16a8c0-5832-4cd0-be49-4f350ef9e755
osd.11 up   in  weight 1 up_from 4841 up_thru 4841 down_at 4836 last_clean_interval [61,4834) [v2:10.10.20.3:6808/4245,v1:10.10.20.3:6809/4245] [v2:10.10.20.3:6810/4245,v1:10.10.20.3:6811/4245] exists,up 0f3ef01a-295b-428d-89dc-47757e2e532f
pg_upmap_items 2.3 [11,8]
pg_upmap_items 2.33 [1,2]
pg_upmap_items 2.3c [5,4]
pg_upmap_items 2.52 [10,8]
pg_upmap_items 2.77 [1,2]

<đã lược bỏ bớt logs>

pg_upmap_items 2.350 [1,2]
pg_upmap_items 2.3ce [1,2]
pg_upmap_items 2.3ea [1,2]
pg_upmap_items 2.3fa [5,4]
pg_upmap_items 6.10 [10,9]
pg_upmap_items 6.1a [10,8]

pg_upmap_items thể hiện kế hoạch phân bổ lại các objects trong PG đến các OSD cụ thể. Đây là cơ chế giúp Ceph tối ưu hóa phân bổ dữ liệu và cân bằng tải. Nó cho phép Ceph xác định và thực hiện kế hoạch di chuyển dữ liệu từ các OSD không ổn định hoặc quá tải đến các OSD khác có thể đáp ứng tốt hơn. Đây là một phần của chiến lược để duy trì sự cân bằng và hiệu suất của hệ thống lưu trữ.

  • Cách Thức Hoạt Động:
    • Dự Đoán: pg_upmap_items thể hiện các OSD mà Ceph dự định phân bổ lại các objects của PG. Nếu một OSD hiện tại có sự cố hoặc không hoạt động, các objects trong PG sẽ được phân bổ lại đến các OSD khác.
    • Lập Kế Hoạch: Ceph sử dụng thông tin từ pg_upmap_items để lên kế hoạch cho việc di chuyển các objects và cập nhật cấu hình của PG sao cho các OSD mới nhận trách nhiệm lưu trữ.

Giả sử bạn có một PG với pg_upmap_items như sau:

pg_upmap_items 6.1a [10,8]

Và kết quả của lệnh osdmap.

shell> ceph pg map 6.1a
osdmap e5094 pg 6.1a (6.1a) -> up [8,1] acting [8,1]

Với osdmap, nó cho thấy trạng thái hiện tại của PG 6.1a. Trong trường hợp này, PG 6.1a hiện tại đang hoạt động với các OSD [8,1], có nghĩa là các OSD này hiện tại đang lưu trữ các objects của PG và có vai trò chính trong việc duy trì dữ liệu. Như vậy osdmap sẽ cung cấp thông tin về trạng thái thực tế hiện tại của PG, bao gồm các OSD đang hoạt động và đang chịu trách nhiệm xử lý dữ liệu của PG.

6.2. Trường hợp khi có device hỏng và hệ thống chưa thực hiện rebalance.

Khi một OSD node gặp sự cố (down), hệ thống sẽ thực hiện một cơ chế gọi là “blocklisting” để đảm bảo rằng các OSD hoặc client trước đây đã kết nối với OSD đó không thể tiếp tục gửi yêu cầu đến nó, ngay cả khi nó quay trở lại trực tuyến. Điều này được thực hiện nhằm ngăn chặn các vấn đề nhất quán dữ liệu và bảo vệ hệ thống khỏi các sự cố tiềm ẩn.

Cụ thể:

  • Blocklist: Đây là danh sách các địa chỉ (IP và port) bị cấm truy cập vào một OSD nhất định. Khi một OSD bị down, các client hoặc OSD khác đã từng kết nối với nó sẽ bị blocklist, nghĩa là bất kỳ yêu cầu nào từ các địa chỉ này đều sẽ bị từ chối cho đến khi blocklist hết hạn.
  • Expires: Thời gian hết hạn của blocklist, sau thời gian này, các địa chỉ bị blocklist sẽ được phép kết nối lại với OSD nếu OSD đó trở lại trực tuyến.
shell> ceph osd dump
epoch 4870
fsid a5c33f84-8710-476b-9924-2a76e0395a73
created 2024-08-14T22:41:17.102990+0700
modified 2024-08-20T22:36:02.083062+0700
flags sortbitwise,recovery_deletes,purged_snapdirs,pglog_hardlimit
crush_version 71
full_ratio 0.95
backfillfull_ratio 0.9
nearfull_ratio 0.85
require_min_compat_client luminous
min_compat_client luminous
require_osd_release reef
stretch_mode_enabled false
pool 1 '.mgr' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 1 pgp_num 1 autoscale_mode on last_change 2065 flags hashpspool stripe_width 0 pg_num_max 32 pg_num_min 1 application mgr read_balance_score 11.76
pool 2 'CEPH-NVME-01' replicated size 2 min_size 2 crush_rule 1 object_hash rjenkins pg_num 1024 pgp_num 1024 autoscale_mode off last_change 4829 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd read_balance_score 1.58
pool 3 '.rgw.root' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4805 flags hashpspool stripe_width 0 application rgw read_balance_score 3.36
pool 4 'default.rgw.log' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4807 flags hashpspool stripe_width 0 application rgw read_balance_score 2.61
pool 5 'default.rgw.control' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4809 flags hashpspool stripe_width 0 application rgw read_balance_score 2.61
pool 6 'default.rgw.meta' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4811 flags hashpspool stripe_width 0 pg_autoscale_bias 4 application rgw read_balance_score 3.36
max_osd 12
osd.0 down in  weight 1 up_from 4818 up_thru 4843 down_at 4868 last_clean_interval [3779,4814) [v2:10.10.20.1:6824/4174,v1:10.10.20.1:6825/4174] [v2:10.10.20.1:6826/4174,v1:10.10.20.1:6827/4174] exists 7e8b8f4d-6d13-4257-b10a-81b32734d0da
osd.1 down in  weight 1 up_from 4822 up_thru 4843 down_at 4868 last_clean_interval [3779,4814) [v2:10.10.20.1:6802/4183,v1:10.10.20.1:6806/4183] [v2:10.10.20.1:6810/4183,v1:10.10.20.1:6814/4183] exists f0d66fe2-b73e-4830-9f37-94b27a43e7b1
osd.2 down in  weight 1 up_from 4819 up_thru 4843 down_at 4868 last_clean_interval [3782,4814) [v2:10.10.20.1:6800/4186,v1:10.10.20.1:6803/4186] [v2:10.10.20.1:6805/4186,v1:10.10.20.1:6807/4186] exists 9334c599-a46f-42b3-9359-9ee554f061a7
osd.3 down in  weight 1 up_from 4822 up_thru 4843 down_at 4868 last_clean_interval [3782,4814) [v2:10.10.20.1:6801/4189,v1:10.10.20.1:6804/4189] [v2:10.10.20.1:6808/4189,v1:10.10.20.1:6812/4189] exists 3f3cbd9d-8a18-45dc-8e54-f79b5eeb225c
osd.4 up   in  weight 1 up_from 3796 up_thru 4868 down_at 3790 last_clean_interval [3763,3789) [v2:10.10.20.2:6821/4136,v1:10.10.20.2:6824/4136] [v2:10.10.20.2:6826/4136,v1:10.10.20.2:6827/4136] exists,up 99b4c7a6-f990-4aaa-bf67-625e49722077
osd.5 up   in  weight 1 up_from 3797 up_thru 4868 down_at 3790 last_clean_interval [3762,3789) [v2:10.10.20.2:6800/4139,v1:10.10.20.2:6802/4139] [v2:10.10.20.2:6805/4139,v1:10.10.20.2:6808/4139] exists,up 97be6d8d-439c-440b-a56d-04e7f3e1c2f7
osd.6 up   in  weight 1 up_from 3793 up_thru 4868 down_at 3790 last_clean_interval [3762,3789) [v2:10.10.20.2:6803/4138,v1:10.10.20.2:6807/4138] [v2:10.10.20.2:6810/4138,v1:10.10.20.2:6814/4138] exists,up 1a516367-a28d-42a7-941e-1f26b3047e3f
osd.7 up   in  weight 1 up_from 3796 up_thru 4868 down_at 3790 last_clean_interval [3760,3789) [v2:10.10.20.2:6801/4133,v1:10.10.20.2:6804/4133] [v2:10.10.20.2:6806/4133,v1:10.10.20.2:6809/4133] exists,up 27790b1b-476f-4972-8d06-2d30ea856d8b
osd.8 up   in  weight 1 up_from 4842 up_thru 4868 down_at 4835 last_clean_interval [48,4834) [v2:10.10.20.3:6816/4246,v1:10.10.20.3:6817/4246] [v2:10.10.20.3:6818/4246,v1:10.10.20.3:6819/4246] exists,up 9dcf9cc4-cd94-4d68-8c62-109e3dbedab8
osd.9 up   in  weight 1 up_from 4840 up_thru 4868 down_at 4835 last_clean_interval [53,4834) [v2:10.10.20.3:6800/4247,v1:10.10.20.3:6801/4247] [v2:10.10.20.3:6802/4247,v1:10.10.20.3:6803/4247] exists,up 20a95da0-9827-417b-ae8b-b807f00761d1
osd.10 up   in  weight 1 up_from 4843 up_thru 4868 down_at 4836 last_clean_interval [57,4834) [v2:10.10.20.3:6820/4237,v1:10.10.20.3:6822/4237] [v2:10.10.20.3:6824/4237,v1:10.10.20.3:6826/4237] exists,up 1f16a8c0-5832-4cd0-be49-4f350ef9e755
osd.11 up   in  weight 1 up_from 4841 up_thru 4868 down_at 4836 last_clean_interval [61,4834) [v2:10.10.20.3:6808/4245,v1:10.10.20.3:6809/4245] [v2:10.10.20.3:6810/4245,v1:10.10.20.3:6811/4245] exists,up 0f3ef01a-295b-428d-89dc-47757e2e532f
pg_upmap_items 2.3 [11,8]
pg_upmap_items 2.33 [1,2]
pg_upmap_items 2.3c [5,4]
pg_upmap_items 2.52 [10,8]
pg_upmap_items 2.77 [1,2]

<đã lược bỏ bớt logs>

pg_upmap_items 2.3ea [1,2]
pg_upmap_items 2.3fa [5,4]
pg_upmap_items 6.10 [10,9]
pg_upmap_items 6.1a [10,8]
blocklist 10.10.20.1:0/3404511472 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:0/474711669 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:0/2633451350 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:0/23462215 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:6833/3586 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:6832/3586 expires 2024-08-21T22:36:02.083017+0700

Ví dụ, với blocklist như sau:

blocklist 10.10.20.1:6833/3586 expires 2024-08-21T22:36:02.083017+0700

Cụ thể:

  • 10.10.20.1: Địa chỉ IP của client hoặc OSD đã kết nối.
  • 6833: Port mà client hoặc OSD đã sử dụng khi kết nối với OSD bị down.
  • 3586: Session ID, một định danh duy nhất của phiên kết nối.
  • expires: Thời gian blocklist sẽ hết hạn.

Trong trường hợp này, blocklist là một biện pháp ngăn chặn các kết nối từ địa chỉ 10.10.20.1 thông qua port 6833 với session ID 3586 đến OSD cho đến khi thời gian blocklist hết hạn vào ngày 21/08/2024 lúc 22:36:02.

Blocklist này đảm bảo rằng ngay cả khi OSD khởi động lại, nó sẽ không phục vụ các yêu cầu từ phiên kết nối cũ, giúp bảo vệ sự toàn vẹn của dữ liệu trong hệ thống Ceph.

Với pg_upmap_items trong trường hợp có device hỏng mình có ví dụ pg_upmap_items 2.33 [1,2]:

pg_upmap_items 2.33 [1,2]

Bạn thấy rằng osd.1osd.2 đang ở trạng thái “down”, nhưng trong pg_upmap_items ta thấy các objects của PG 2.33 vẫn đang được phân bổ lại tới các OSD này. Tuy nhiên, nếu osd.1osd.2 đang down, Ceph sẽ không thực hiện việc di chuyển ngay lập tức đến các OSD này.

Ceph sẽ xem xét trạng thái của các OSD và điều chỉnh kế hoạch phân bổ lại các objects khi cần thiết. Nếu các OSD down không phục hồi, Ceph sẽ chọn các OSD thay thế để phân bổ các objects.

Khi PG remap, Ceph sẽ cập nhật các kế hoạch phân bổ lại và pg_upmap_items theo trạng thái thực tế của các OSD và khả năng của cluster. Nếu các OSD bị down không phục hồi, Ceph sẽ cập nhật kế hoạch để phân bổ lại các objects tới các OSD khác.

6.3. Trường hợp khi có device hỏng và hệ thống đang thực hiện rebalance.

shell> ceph osd dump
epoch 4909
fsid a5c33f84-8710-476b-9924-2a76e0395a73
created 2024-08-14T22:41:17.102990+0700
modified 2024-08-20T22:40:13.231229+0700
flags sortbitwise,recovery_deletes,purged_snapdirs,pglog_hardlimit
crush_version 72
full_ratio 0.95
backfillfull_ratio 0.9
nearfull_ratio 0.85
require_min_compat_client luminous
min_compat_client luminous
require_osd_release reef
stretch_mode_enabled false
pool 1 '.mgr' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 1 pgp_num 1 autoscale_mode on last_change 2065 flags hashpspool stripe_width 0 pg_num_max 32 pg_num_min 1 application mgr read_balance_score 8.00
pool 2 'CEPH-NVME-01' replicated size 2 min_size 2 crush_rule 1 object_hash rjenkins pg_num 1024 pgp_num 1024 autoscale_mode off last_change 4829 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd read_balance_score 1.11
pool 3 '.rgw.root' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4805 flags hashpspool stripe_width 0 application rgw read_balance_score 2.00
pool 4 'default.rgw.log' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4807 flags hashpspool stripe_width 0 application rgw read_balance_score 1.75
pool 5 'default.rgw.control' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4809 flags hashpspool stripe_width 0 application rgw read_balance_score 1.50
pool 6 'default.rgw.meta' replicated size 2 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode off last_change 4811 flags hashpspool stripe_width 0 pg_autoscale_bias 4 application rgw read_balance_score 1.50
max_osd 12
osd.0 down in  weight 1 up_from 4818 up_thru 4843 down_at 4868 last_clean_interval [3779,4814) [v2:10.10.20.1:6824/4174,v1:10.10.20.1:6825/4174] [v2:10.10.20.1:6826/4174,v1:10.10.20.1:6827/4174] exists 7e8b8f4d-6d13-4257-b10a-81b32734d0da
osd.1 down in  weight 1 up_from 4822 up_thru 4843 down_at 4868 last_clean_interval [3779,4814) [v2:10.10.20.1:6802/4183,v1:10.10.20.1:6806/4183] [v2:10.10.20.1:6810/4183,v1:10.10.20.1:6814/4183] exists f0d66fe2-b73e-4830-9f37-94b27a43e7b1
osd.2 down in  weight 1 up_from 4819 up_thru 4843 down_at 4868 last_clean_interval [3782,4814) [v2:10.10.20.1:6800/4186,v1:10.10.20.1:6803/4186] [v2:10.10.20.1:6805/4186,v1:10.10.20.1:6807/4186] exists 9334c599-a46f-42b3-9359-9ee554f061a7
osd.3 down in  weight 1 up_from 4822 up_thru 4843 down_at 4868 last_clean_interval [3782,4814) [v2:10.10.20.1:6801/4189,v1:10.10.20.1:6804/4189] [v2:10.10.20.1:6808/4189,v1:10.10.20.1:6812/4189] exists 3f3cbd9d-8a18-45dc-8e54-f79b5eeb225c
osd.4 up   in  weight 1 up_from 3796 up_thru 4908 down_at 3790 last_clean_interval [3763,3789) [v2:10.10.20.2:6821/4136,v1:10.10.20.2:6824/4136] [v2:10.10.20.2:6826/4136,v1:10.10.20.2:6827/4136] exists,up 99b4c7a6-f990-4aaa-bf67-625e49722077
osd.5 up   in  weight 1 up_from 3797 up_thru 4908 down_at 3790 last_clean_interval [3762,3789) [v2:10.10.20.2:6800/4139,v1:10.10.20.2:6802/4139] [v2:10.10.20.2:6805/4139,v1:10.10.20.2:6808/4139] exists,up 97be6d8d-439c-440b-a56d-04e7f3e1c2f7
osd.6 up   in  weight 1 up_from 3793 up_thru 4908 down_at 3790 last_clean_interval [3762,3789) [v2:10.10.20.2:6803/4138,v1:10.10.20.2:6807/4138] [v2:10.10.20.2:6810/4138,v1:10.10.20.2:6814/4138] exists,up 1a516367-a28d-42a7-941e-1f26b3047e3f
osd.7 up   in  weight 1 up_from 3796 up_thru 4908 down_at 3790 last_clean_interval [3760,3789) [v2:10.10.20.2:6801/4133,v1:10.10.20.2:6804/4133] [v2:10.10.20.2:6806/4133,v1:10.10.20.2:6809/4133] exists,up 27790b1b-476f-4972-8d06-2d30ea856d8b
osd.8 up   in  weight 1 up_from 4842 up_thru 4908 down_at 4835 last_clean_interval [48,4834) [v2:10.10.20.3:6816/4246,v1:10.10.20.3:6817/4246] [v2:10.10.20.3:6818/4246,v1:10.10.20.3:6819/4246] exists,up 9dcf9cc4-cd94-4d68-8c62-109e3dbedab8
osd.9 up   in  weight 1 up_from 4840 up_thru 4908 down_at 4835 last_clean_interval [53,4834) [v2:10.10.20.3:6800/4247,v1:10.10.20.3:6801/4247] [v2:10.10.20.3:6802/4247,v1:10.10.20.3:6803/4247] exists,up 20a95da0-9827-417b-ae8b-b807f00761d1
osd.10 up   in  weight 1 up_from 4843 up_thru 4908 down_at 4836 last_clean_interval [57,4834) [v2:10.10.20.3:6820/4237,v1:10.10.20.3:6822/4237] [v2:10.10.20.3:6824/4237,v1:10.10.20.3:6826/4237] exists,up 1f16a8c0-5832-4cd0-be49-4f350ef9e755
osd.11 up   in  weight 1 up_from 4841 up_thru 4907 down_at 4836 last_clean_interval [61,4834) [v2:10.10.20.3:6808/4245,v1:10.10.20.3:6809/4245] [v2:10.10.20.3:6810/4245,v1:10.10.20.3:6811/4245] exists,up 0f3ef01a-295b-428d-89dc-47757e2e532f
pg_upmap_items 2.3 [11,8]
pg_upmap_items 2.3c [5,4]
pg_upmap_items 2.52 [10,8]
pg_upmap_items 2.178 [5,4]
pg_upmap_items 2.19d [5,4]
pg_upmap_items 2.1dc [10,8]
pg_upmap_items 2.211 [10,8]

<đã lược bỏ bớt logs>

pg_temp 2.3f0 [9]
pg_temp 2.3f1 [5]
pg_temp 2.3f4 [11]
pg_temp 2.3f8 [6]
pg_temp 2.3fd [9]
pg_temp 2.3fe [8]
pg_temp 2.3ff [9]
blocklist 10.10.20.1:0/3404511472 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:0/474711669 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:0/2633451350 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:0/23462215 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:6833/3586 expires 2024-08-21T22:36:02.083017+0700
blocklist 10.10.20.1:6832/3586 expires 2024-08-21T22:36:02.083017+0700

Khi hệ thống tiến hành rebalance, bạn có thể thấy thông tin về pg_temp trong trạng thái của các Placement Groups (PGs). Các dòng như:

pg_temp 2.3f0 [9]
pg_temp 2.3f1 [5]
pg_temp 2.3f4 [11]

Nó diễn tả việc tạm thời di chuyển hoặc gán lại các OSD cho các PG trong quá trình rebalance.

Cụ thể:

  • pg_temp: Chỉ định rằng đây là một cấu hình tạm thời cho một PG cụ thể.
  • 2.3f0, 2.3f1, 2.3f4: Đây là các ID của PGs. Trong đó, 2 là pool ID và phần sau dấu . (như 3f0, 3f1, 3f4) là ID của chính PG trong pool đó.
  • [9], [5], [11]: Là danh sách các OSD hiện đang chịu trách nhiệm lưu trữ dữ liệu của PG đó trong cấu hình tạm thời.

Khi hệ thống Ceph tiến hành rebalance (ví dụ, khi thêm, xóa hoặc một OSD không hoạt động), các PG có thể cần được phân bổ lại cho các OSD khác để duy trì sự cân bằng trong hệ thống. Trong quá trình này, pg_temp được sử dụng để theo dõi tạm thời nơi mà PG đang được gán hoặc chuyển dữ liệu, trước khi hệ thống đạt được trạng thái cân bằng mới và ổn định.

Ví dụ như dòng pg_temp 2.3f0 [9] cho ta thấy hệ thống Ceph đã xác định một bản sao của PG 2.3f0 đang thiếu (có thể do một OSD down hoặc xảy ra một sự kiện khác) và đã quyết định tạm thời chỉ định OSD 9 để chứa bản sao thiếu này. Đây là cách Ceph đảm bảo rằng dữ liệu luôn có đủ số lượng bản sao theo cấu hình (replication) của cluster, ngay cả khi có OSD gặp sự cố.

Như vậypg_temp là một cơ chế tạm thời giúp Ceph điều chỉnh và cân bằng lại dữ liệu khi các OSD trong cluster thay đổi, đảm bảo rằng dữ liệu luôn được phân bổ đúng và an toàn.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories