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.