Thursday, November 21, 2024

Sửa lỗi HEALTH_WARN 1 daemons have recently crashed

-


Thông báo “HEALTH_WARN 1 daemons have recently crashed” trong Ceph đang chỉ ra rằng một số daemon trong cụm Ceph đã gặp sự cố và bị crash gần đây. Điều này được coi là một cảnh báo về sức khỏe của hệ thống Ceph.

Sự cố crash của các daemon có thể gây ảnh hưởng đến tính ổn định và khả năng hoạt động của cụm Ceph. Khi một daemon bị crash, nó không còn khả năng tham gia vào hoạt động của cụm, dẫn đến mất mát khả năng xử lý và lưu trữ dữ liệu.

Nguyên nhân của sự cố crash có thể bao gồm các vấn đề phần cứng, lỗi phần mềm, tải công việc quá cao hoặc sự cố mạng. Để khắc phục lỗi và đảm bảo tính ổn định của cụm Ceph, bạn có thể thực hiện các bước sau:

  • Kiểm tra log của daemon bị crash: Xem xét log của daemon để tìm hiểu nguyên nhân gây ra sự cố. Log có thể cung cấp thông tin chi tiết về lỗi và giúp xác định nguyên nhân cụ thể.
  • Kiểm tra phần cứng và mạng: Đảm bảo rằng phần cứng (bao gồm ổ cứng, bộ nhớ, CPU) và mạng trên các node của cụm Ceph hoạt động bình thường. Kiểm tra kết nối mạng, cung cấp đủ tài nguyên và đảm bảo không có sự cố về phần cứng gây ra crash.
  • Kiểm tra phiên bản và cấu hình: Đảm bảo rằng bạn đang sử dụng phiên bản Ceph mới nhất và có cấu hình phù hợp cho cụm của mình. Đôi khi, việc nâng cấp lên phiên bản mới hoặc điều chỉnh cấu hình có thể giúp giải quyết các vấn đề liên quan đến crash.
  • Khôi phục daemon và cụm: Nếu daemon bị crash, bạn có thể cố gắng khởi động lại daemon hoặc khởi động lại toàn bộ cụm Ceph để đảm bảo tính ổn định.
  • Theo dõi và phân tích sự cố: Theo dõi và phân tích sự cố tiếp theo để xác định nguyên nhân cụ thể và thực hiện các biện pháp khắc phục. Nắm bắt thông tin về các sự cố trước đó và thực hiện các biện pháp để tránh lặp lại các vấn đề tương tự trong tương lai.

Quan trọng nhất, khi gặp sự cố crash của daemon trong Ceph, bạn nên xem xét và giải quyết nhanh chóng để đảm bảo tính ổn định và khả năng hoạt động của cụm.

Đây là trạng thái lỗi Ceph của mình trên CLI.

$ ceph -s
  cluster:
    id:     1d447334-e065-4745-b494-99bc76c7dff8
    health: HEALTH_WARN
            1 daemons have recently crashed
 
  services:
    mon: 3 daemons, quorum pve-node1,pve-node2,pve-node3 (age 9h)
    mgr: pve-node3(active, since 9h), standbys: pve-node2, pve-node1
    osd: 17 osds: 17 up (since 9h), 17 in (since 42h)
 
  data:
    pools:   3 pools, 65 pgs
    objects: 11.16k objects, 3.1 GiB
    usage:   12 GiB used, 15 TiB / 15 TiB avail
    pgs:     65 active+clean

Nếu xem trên GUI bạn sẽ nhìn thấy như vậy.

Và đây là cách fix của mình, hãy liệt kê danh sách ID bị lỗi.

$ ceph crash ls
ID                                                                ENTITY        NEW  
2023-05-24T16:17:06.222954Z_23cdd963-9e82-445b-969e-1749ac45ddba  client.admin

Sau khi có ID bị lỗi, bạn có thể xem chi tiết thông tin ID bị lỗi ceph crash info <ID>.

root@pve-node1:~# ceph crash info 2023-05-24T16:17:06.222954Z_23cdd963-9e82-445b-969e-1749ac45ddba
{
    "backtrace": [
        "/lib/x86_64-linux-gnu/libpthread.so.0(+0x13140) [0x7f7f435aa140]",
        "gsignal()",
        "abort()",
        "/lib/x86_64-linux-gnu/libc.so.6(+0x2240f) [0x7f7f430b140f]",
        "/lib/x86_64-linux-gnu/libc.so.6(+0x31662) [0x7f7f430c0662]",
        "(Throttle::get_or_fail(long)+0x6f9) [0x7f7f438eb109]",
        "/lib/librados.so.2(+0xe4b79) [0x7f7f4c346b79]",
        "/lib/librados.so.2(+0x102438) [0x7f7f4c364438]",
        "/lib/librados.so.2(+0x1025f3) [0x7f7f4c3645f3]",
        "/lib/librados.so.2(+0xac186) [0x7f7f4c30e186]",
        "(librados::v14_2_0::IoCtx::aio_operate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, librados::v14_2_0::AioCompletion*, librados::v14_2_0::ObjectWriteOperation*)+0x72) [0x7f7f4c2e0ed2]",
        "(RadosBencher::aio_write(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, ceph::buffer::v15_2_0::list&, unsigned long, unsigned long)+0xb9) [0x56246620b879]",
        "(ObjBencher::write_bench(int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, int)+0x6bd) [0x562466226a9d]",
        "(ObjBencher::aio_bench(int, int, int, unsigned long, unsigned long, unsigned int, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool)+0x3bc) [0x56246622c49c]",
        "main()",
        "__libc_start_main()",
        "_start()"
    ],
    "ceph_version": "16.2.11",
    "crash_id": "2023-05-24T16:17:06.222954Z_23cdd963-9e82-445b-969e-1749ac45ddba",
    "entity_name": "client.admin",
    "os_id": "11",
    "os_name": "Debian GNU/Linux 11 (bullseye)",
    "os_version": "11 (bullseye)",
    "os_version_id": "11",
    "process_name": "rados",
    "stack_sig": "4d5b6afe9c973784e23d7982de7ec43f79319c8eefced0e10dc032a186ae6dd1",
    "timestamp": "2023-05-24T16:17:06.222954Z",
    "utsname_hostname": "pve-node1",
    "utsname_machine": "x86_64",
    "utsname_release": "5.15.102-1-pve",
    "utsname_sysname": "Linux",
    "utsname_version": "#1 SMP PVE 5.15.102-1 (2023-03-14T13:48Z)"
}

Sử dụng ceph crash archive <id> để sử lỗi. Ceph Crash Archive (ceph-crash-archive) là một tính năng trong Ceph được sử dụng để lưu trữ thông tin liên quan đến các sự cố (crash) xảy ra trên các daemon trong cụm Ceph. Khi một daemon (như OSD, MON, MDS) trong cụm Ceph bị crash, thông tin về sự cố đó sẽ được ghi lại và lưu trữ trong Crash Archive.

Tác dụng chính của Ceph Crash Archive bao gồm:

  • Đánh dấu sự cố: Crash Archive giúp đánh dấu và lưu trữ thông tin về các sự cố xảy ra trên các daemon trong cụm Ceph. Điều này cho phép quản trị viên kiểm tra và phân tích các sự cố đã xảy ra, từ đó đưa ra các biện pháp khắc phục và nâng cao tính ổn định của hệ thống.
  • Ghi lại thông tin chi tiết: Crash Archive lưu trữ thông tin chi tiết về các sự cố, bao gồm thời gian xảy ra, daemon và host liên quan, thông điệp lỗi, stack trace và các thông tin khác liên quan. Nhờ đó, quản trị viên có thể dễ dàng xem xét và phân tích các thông tin này để xác định nguyên nhân và tìm giải pháp cho sự cố.
  • Hỗ trợ phân tích lỗi: Crash Archive cung cấp một nguồn thông tin quan trọng cho quá trình phân tích lỗi. Bằng cách xem xét các thông tin trong Crash Archive, như stack trace hay log của daemon, quản trị viên có thể tìm hiểu rõ hơn về nguyên nhân gây ra sự cố và tìm giải pháp để khắc phục.
  • Hỗ trợ gỡ lỗi và cải thiện tính ổn định: Crash Archive cung cấp dữ liệu quan trọng để hỗ trợ việc gỡ lỗi và cải thiện tính ổn định của cụm Ceph. Quản trị viên có thể xem xét các sự cố trước đó trong Crash Archive và áp dụng các biện pháp cần thiết để tránh lặp lại các vấn đề tương tự trong tương lai.
ceph crash archive 2023-05-24T16:17:06.222954Z_23cdd963-9e82-445b-969e-1749ac45ddba

Hoặc

ceph crash archive-all

Kết quả

$ ceph -s
  cluster:
    id:     1d447334-e065-4745-b494-99bc76c7dff8
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum pve-node2,pve-node3,pve-node1 (age 8m)
    mgr: pve-node2(active, since 30m), standbys: pve-node3, pve-node1
    osd: 17 osds: 17 up (since 10m), 17 in (since 43h)
 
  data:
    pools:   2 pools, 1024 pgs
    objects: 0 objects, 0 B
    usage:   1.9 GiB used, 15 TiB / 15 TiB avail
    pgs:     1024 active+clean 

Kết quả trên GUI.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories