Logo

Personal Ops Runbook

Personal runbook covering infrastructure operations for Cloud, Kubernetes, OpenStack, and Ceph environments. Includes deployment and teardown procedures, node management, cluster monitoring setup, and incident response workflows compiled from day-to-day operational work. Intended strictly for personal reference — configurations and scripts are environment-specific and not guaranteed to work as-is elsewhere.

Quy trình thay DISK DATA

Node 05 đang có 6 Data + 2 Journal đều Healthy ở server 35b83b77-a97d-43a5-8325-39f84ac67605 (oss-nvme-05). Giờ giả lập rút disk khỏi bus PCI bằng sysfs — tương đương về mặt logic với việc kỹ thuật viên DC rút disk vật lý, disk biến mất khỏi OS đột ngột, health check của node-manager phát hiện và đánh Failed.

[root@vm-admin-01 ~]# lbcli list nvme-devices
Name      Size      NUMA ID   Serial           State     Server UUID                            Node UUID                              Usage
nvme7n1   14 TiB    0         S6VANN0L106477   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme1n1   14 TiB    0         S6VANN0L107038   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme0n1   14 TiB    0         S6VANN0L107040   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Journal
nvme4n1   14 TiB    0         S6VANN0L107037   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme2n1   14 TiB    0         S6VANN0L106474   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Journal
nvme6n1   14 TiB    0         S6VANN0L106480   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme3n1   14 TiB    0         S6VANN0L106481   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme5n1   14 TiB    0         S6VANN0L106478   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme6n1   14 TiB    0         S6VANN0L107102   Healthy   88940976-0aa4-5506-852b-e5861d3816cb   5c5b6d5d-21c0-51e2-9c02-359936ae9c70   Data
nvme4n1   14 TiB    0         S6VANN0L105950   Healthy   88940976-0aa4-5506-852b-e5861d3816cb   5c5b6d5d-21c0-51e2-9c02-359936ae9c70   Journal
nvme1n1   14 TiB    0         S6VANN0L107095   Healthy   88940976-0aa4-5506-852b-e5861d3816cb   5c5b6d5d-21c0-51e2-9c02-359936ae9c70   Data
nvme5n1   14 TiB    0         S6VANN0L107097   Healthy   88940976-0aa4-5506-852b-e5861d3816cb   5c5b6d5d-21c0-51e2-9c02-359936ae9c70   Data
nvme7n1   14 TiB    0         S6VANN0L107091   Healthy   88940976-0aa4-5506-852b-e5861d3816cb   5c5b6d5d-21c0-51e2-9c02-359936ae9c70   Journal
nvme3n1   14 TiB    0         S6VANN0L105943   Healthy   88940976-0aa4-5506-852b-e5861d3816cb   5c5b6d5d-21c0-51e2-9c02-359936ae9c70   Data
nvme2n1   14 TiB    0         S6VANN0L107101   Healthy   88940976-0aa4-5506-852b-e5861d3816cb   5c5b6d5d-21c0-51e2-9c02-359936ae9c70   Data
nvme0n1   14 TiB    0         S6VANN0L107099   Healthy   88940976-0aa4-5506-852b-e5861d3816cb   5c5b6d5d-21c0-51e2-9c02-359936ae9c70   Data
nvme4n1   14 TiB    0         S6VANN0L105908   Healthy   a0d5bf2a-2ef6-5ff9-953b-592531939f78   e8bc0737-a4af-5538-8952-3cdf63a20f96   Data
nvme0n1   14 TiB    0         S6VANN0L105949   Healthy   a0d5bf2a-2ef6-5ff9-953b-592531939f78   e8bc0737-a4af-5538-8952-3cdf63a20f96   Data

Chọn nạn nhân trước — bắt buộc là disk DATA của 05, tránh 2 disk journal (nvme0n1/107040, nvme2n1/106474 — journal hỏng là bài khác hẳn, dính tới md, làm node fail cả datapath).

Ví dụ này sẽ lấy disk nvme5n1 / S6VANN0L106478 / Data:

### [NEW = oss-nvme-05] ###
# 1. Tìm và lưu PCI address của ổ
[root@oss-nvme-05 ~]# PCIADDR=$(basename $(readlink -f /sys/block/nvme5n1/device | sed 's|/nvme/nvme[0-9]*||'))
[root@oss-nvme-05 ~]# echo $PCIADDR
0000:84:00.0

# Đây là serial của disk nvme5n1
[root@oss-nvme-05 ~]# cat /sys/block/nvme5n1/device/serial 2>/dev/null
S6VANN0L106478

# 2. Chạy lệnh dưới để rút disk khỏi PCI bus
[root@oss-nvme-05 ~]# echo 1 > /sys/bus/pci/devices/$PCIADDR/remove
[root@oss-nvme-05 ~]# lsblk | grep -c nvme5n1
0

Quan sát phản ứng cluster

[root@vm-admin-01 ~]# lbcli --endpoint $ENDPOINT -J "$LIGHTOS_JWT" list nvme-devices | egrep "Failed|Rebuilding|106478"
nvme5n1   14 TiB    0         S6VANN0L106478   Failed    35b83b77-a97d-43a5-8325-39f84ac67605   ---          UnManaged

[root@vm-admin-01 ~]# lbcli --endpoint $ENDPOINT -J "$LIGHTOS_JWT" get node --uuid=8861a8fc-b72b-4129-b9e9-1fe77a5a6e82
Name            UUID                                   State     NVMe endpoint        Failure domains   Capacity   Used      Local rebuild progress
oss-nvme-05-0   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Active    10.237.95.105:4420   [oss-nvme-05]     49 TiB     0 B       None

[root@vm-admin-01 ~]# lbcli --endpoint $ENDPOINT -J "$LIGHTOS_JWT" list events | head -5
ID        Severity   Time                      Name                          Description      Type      Component(s)
29        High       2026-08-02 15:39:14.807   NVMeDeviceFailed                               NVMeSSD   nvme5n1
28        Info       2026-08-02 02:58:19.784   ServerDeleted                 Completed        Server    oss-nvme-04
27        High       2026-08-02 02:16:06.850   ServerClockDrift              ClockDrift       Server    oss-nvme-01
26        Info       2026-08-02 01:30:37.663   NodeEnteredUnattachedState                     Node      oss-nvme-04-0

Do cluster đang 0 volume, không có data nên sẽ không thấy Rebuilding (không có dữ liệu để tái dựng EC) — disk bị gỡ nhiều khả năng nhảy nhanh sang Failed/mất khỏi node. Muốn diễn tập trọn vẹn cả pha Rebuilding + localRebuildProgress như docs mô tả thì tạo 1 volume + ghi ít dữ liệu trước rồi mới rút. Với mục tiêu tập quy trình thay, không cần volume vẫn ổn.

Giờ thực hành cắm disk mới, tức sẽ gắn disk lúc nãy vừa gỡ lại bus rồi add theo đúng flow docs:

[NEW] — Giả lập cắm lại disk bằng lệnh rescan

# Rescan
[root@oss-nvme-05 ~]# echo 1 > /sys/bus/pci/rescan

# Verify
[root@oss-nvme-05 ~]# lsblk | grep nvme
nvme0n1   259:0    0    14T  0 disk
nvme5n1   259:1    0    14T  0 disk
nvme1n1   259:2    0    14T  0 disk
nvme4n1   259:3    0    14T  0 disk
nvme6n1   259:4    0    14T  0 disk
nvme2n1   259:5    0    14T  0 disk
nvme7n1   259:6    0    14T  0 disk
nvme3n1   259:7    0    14T  0 disk

[ADMIN] — Ổ mới vắm vào phải hiển thị UnManaged

[root@vm-admin-01 ~]# lbcli --endpoint $ENDPOINT -J "$LIGHTOS_JWT" list nvme-devices --server-uuid=35b83b77-a97d-43a5-8325-39f84ac67605 --device-usage=unmanaged
Name      Size      NUMA ID   Serial           State     Server UUID                            Node UUID   Usage
nvme5n1   14 TiB    0         S6VANN0L106478   Failed    35b83b77-a97d-43a5-8325-39f84ac67605   ---         UnManaged

Add lại bằng lệnh dưới

lbcli --endpoint $ENDPOINT -J "$LIGHTOS_JWT" add nvme-device --serial-number=S6VANN0L106478 --node-uuid=8861a8fc-b72b-4129-b9e9-1fe77a5a6e82

Chờ vài phút rồi verify:

[root@vm-admin-01 ~]# lbcli --endpoint $ENDPOINT -J "$LIGHTOS_JWT" list nvme-devices --node-uuid=8861a8fc-b72b-4129-b9e9-1fe77a5a6e82 --data
Name      Size      NUMA ID   Serial           State     Server UUID                            Node UUID                              Usage
nvme7n1   14 TiB    0         S6VANN0L106477   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme1n1   14 TiB    0         S6VANN0L107038   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme4n1   14 TiB    0         S6VANN0L107037   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme6n1   14 TiB    0         S6VANN0L106480   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme3n1   14 TiB    0         S6VANN0L106481   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data
nvme5n1   14 TiB    0         S6VANN0L106478   Healthy   35b83b77-a97d-43a5-8325-39f84ac67605   8861a8fc-b72b-4129-b9e9-1fe77a5a6e82   Data

Hai điểm thú vị bài tập này sẽ trả lời luôn: - Cùng serial quay lại thì record Failed cũ được thay thế hay add bị từ chối, vì thực tế người ta cắm ổ mới serial khác; nếu add từ chối vì disk được hệ thống ghi nhận đã từng Failed, hãy wipe ổ trước rồi add lại: wipefs -a + nvme format. - Tên thiết bị nvmeXn1 sau rescan có thể bị thay đổi — bài học rút ra là nên sử dụng serial thay vì device name /dev".

Link docs quy trình thay DISK DATA

Nội dung Link
Nhận diện disk hư, 3 trạng thái Healthy/Rebuilding/Failed, theo dõi rebuild https://documentation.lightbitslabs.com/lightbits-private-cloud/identifying-a-failed-ssd-drive
Trang quy trình thay/thêm SSD https://documentation.lightbitslabs.com/lightbits-private-cloud/adding-an-nvme-ssd-to-a-lightbits-storage-server
Kiểm slot còn chỗ (maxDeviceCount) https://documentation.lightbitslabs.com/lightbits-private-cloud/identifying-unused-slots
Cắm ổ mới + add nvme-device + verify https://documentation.lightbitslabs.com/lightbits-private-cloud/adding-ssds
Troubleshooting ổ lỗi https://documentation.lightbitslabs.com/lightbits-private-cloud/faulty-ssd-device
Tham khảo lệnh lbcli add nvme-device https://documentation.lightbitslabs.com/lightbits-private-cloud/lbcli-add-nvme-device