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.

Install Amalinux 9.6 Raid1 Software

Hai disk đã sạch: AVAILABLE SPACE = 894.26 GiB và scheme đã là Standard Partition. Giờ tạo 3 mount point dạng RAID1.

Bạn vẫn chưa xác nhận UEFI hay Legacy. Mình giả định là UEFI, vì máy mẫu cùng dòng có /boot/efi. Nếu là Legacy, bước A bên dưới sẽ khác, báo mình để sửa.

Hình 3: tạo mount point RAID1 Mỗi mount point làm theo cùng một quy trình:

Bấm +, nhập Mount Point và Desired Capacity, bấm Add mount point. Ở panel bên phải, chỉnh các trường theo bảng của từng mount point. Bấm Update Settings (góc phải dưới). Nếu quên bấm thì các thay đổi sẽ không được lưu. A. /boot/efi Bấm +:

Mount Point: /boot/efi Desired Capacity: 1 GiB Panel phải:

Trường Giá trị Device Type RAID RAID Level (dropdown cạnh Device Type) RAID1 Device(s) → Modify… tick cả sda và sdf File System EFI System Partition Name boot_efi (tuỳ chọn) Installer sẽ tự tạo array này với metadata 1.0 (superblock nằm ở cuối partition). Nhờ vậy firmware vẫn đọc từng partition như một FAT32 bình thường.

B. /boot Bấm +:

Mount Point: /boot Desired Capacity: 1 GiB Trường Giá trị Device Type RAID, RAID Level RAID1 Modify… tick sda và sdf File System xfs Name boot (tuỳ chọn) C. / Bấm +:

Mount Point: / Desired Capacity: để trống, installer sẽ lấy hết dung lượng còn lại. Trường Giá trị Device Type RAID, RAID Level RAID1 Modify… tick sda và sdf File System xfs Name root (tuỳ chọn) Swap: không tạo, giống máy mẫu (máy có 252G RAM). Nếu team bạn yêu cầu có swap thì tạo thêm mount point swap (khoảng 8 GiB, cũng RAID1) trước bước C.

Kiểm tra trước khi bấm Done Có đúng 3 mục, mỗi mục là RAID1 trên sda + sdf. /boot/efi khoảng 1 GiB, /boot khoảng 1 GiB, / khoảng 445 GiB. Theo cách installer tính, 894 GiB là tổng của cả 2 disk. RAID1 nên / chỉ còn khoảng 445 GiB, và AVAILABLE SPACE sẽ về gần 0. Nếu panel phải hiện lỗi đỏ khi bấm Update Settings (đặc biệt ở /boot/efi), chụp lại gửi mình.

Cần bạn gửi thêm Ảnh màn hình sau khi tạo xong 3 mount point, chọn mục / để thấy panel phải. Ảnh popup SUMMARY OF CHANGES hiện ra sau khi bấm Done. Chưa bấm Accept vội, mình xem bảng thao tác trước.

image
image
image
image
image
image
image
image
image
image
image
image
image

Đã kiểm tra cả 3 ảnh, cấu hình đúng. Riêng / thì xem giải thích bên dưới bảng.

Mount point Name Device Type RAID Level File System Size Devices Kết quả /boot/efi boot_efi RAID RAID1 EFI System Partition 1024 MiB sda + 1 other ✅ /boot boot RAID RAID1 xfs 1024 MiB sda + 1 other ✅ / root RAID RAID1 xfs 445 GiB sda + 1 other ✅ Về /:

Ảnh 1 chụp trước khi bấm Update Settings. Lúc đó / vẫn là partition thường sda3, nên AVAILABLE SPACE còn 445.13 GiB, tức là sdf chưa được dùng. Ảnh 2 và 3 cho thấy / đã đổi thành root 445 GiB, nghĩa là đã thành RAID1. OK. Hai việc cần kiểm tra thêm trước khi bấm Done:

AVAILABLE SPACE ở góc trái dưới phải còn khoảng vài MiB. Nếu vẫn còn khoảng 445 GiB, tức là có mục chưa được Update Settings. "sda and 1 other": vì chỉ chọn 2 disk nên "other" chắc chắn là sdf. Muốn chắc chắn thì bấm Modify… ở một mục bất kỳ để xem cả 2 disk đều được tick, rồi Cancel.

image

3:20 PM Phần popup bạn chụp hiển thị ổn. AVAILABLE SPACE = 3.61 MiB, nghĩa là cả 3 mount point đã dùng hết 2 disk.

Mới thấy được 13 dòng đầu, danh sách còn phía dưới.

13 dòng đang thấy Dòng Thao tác Kết quả 1 destroy format vfat trên sdf1 (ESP cũ) ✅ 2–7 destroy md root cũ, gồm sda3 và sdf3 ✅ 8–13 destroy md boot cũ, gồm sda2 và sdf2 ✅ Tất cả đều nằm trên ...204a (sda) và ...2038 (sdf). Không có nvme.

Cuộn xuống xem nốt phần còn lại Phần dưới nên có:

destroy: sda1, sdf1 và có thể cả partition table cũ. create format partition table (GPT) trên sda và sdf. create device partition ×3 trên mỗi disk, kèm create format software RAID cho từng partition. create device mdarray ×3: boot_efi, boot, root. create format: EFI System Partition → /boot/efi, xfs → /boot, xfs → /. ⚠️ Nếu có bất kỳ dòng nào nhắc tới nvme hoặc MZQL215THBLA (model của NVMe 13.97 TiB), bấm Cancel & Return to Custom Partitioning và báo mình. Nếu không có thì bấm Accept Changes.

image

Sau khi Accept Installer quay về màn chính. Cấu hình nốt Network, Root password/User, Time rồi bấm Begin Installation.

Cài xong và reboot vào OS, chạy các lệnh sau (đều read-only) và gửi output cho mình:

lsblk cat /proc/mdstat mdadm --detail /dev/md/boot_efi | grep -E 'Version|State|active sync' efibootmgr -v Mình sẽ kiểm tra:

ESP dùng metadata 1.0. Cả 3 array đều ở trạng thái [UU]. Có boot entry trỏ về cả sda và sdf. Nếu chỉ có 1 entry, mình sẽ hướng dẫn thêm entry cho disk còn lại.

Đúng, không cần cron sync. Với layout bạn vừa tạo, cả 3 thành phần cần để boot đều nằm trên md RAID1:

Thành phần Nằm trên Khi update (dnf update grub2/shim/kernel) ESP: shim, grub, BOOTX64.EFI md boot_efi (RAID1, metadata 1.0) Linux ghi vào /dev/md/boot_efi, md tự mirror sang cả 2 disk /boot: kernel, initramfs, grub.cfg md boot Như trên / md root Như trên Đây chính là khác biệt so với máy mẫu LIGHTBITS-OSS-NVME-012: máy đó có /boot/efi chỉ nằm trên sda1, nên mới cần cron hoặc rsync sang disk kia.

Điều kiện để tự boot được khi chết 1 disk

  1. Firmware phải tìm được bootloader trên disk còn sống. Có 2 đường, chỉ cần 1 trong 2:

Có boot entry NVRAM trỏ tới disk đó. Kiểm tra bằng efibootmgr -v sau khi cài. Fallback path \EFI\BOOT\BOOTX64.EFI. Fact: package shim-x64 cài file này vào ESP. Vì ESP được mirror nên cả 2 disk đều có file này. Firmware sẽ dùng nó khi không còn entry nào hợp lệ, với điều kiện boot order trong BIOS có cả 2 SSD.

  1. Initramfs chịu assemble array khi thiếu disk. Fact: dracut sẽ start array ở trạng thái degraded sau một khoảng timeout. Vì vậy lần boot khi đang hỏng disk có thể chậm hơn bình thường (đứng chờ vài chục giây đến vài phút). Đó là hành vi bình thường, không phải treo.

BOND

image
image
image
image
image
image
image
image
image

VLAN

image
image
image
image
image
image

VERIFY

[root@localhost ~]# lsblk
NAME      MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sde         8:64   0 447.1G  0 disk
├─sde1      8:65   0     1G  0 part
│ └─md124   9:124  0     1G  0 raid1 /boot/efi
├─sde2      8:66   0     1G  0 part
│ └─md127   9:127  0  1023M  0 raid1 /boot
└─sde3      8:67   0 445.1G  0 part
  └─md126   9:126  0   445G  0 raid1 /
sdf         8:80   0 447.1G  0 disk
├─sdf1      8:81   0     1G  0 part
│ └─md124   9:124  0     1G  0 raid1 /boot/efi
├─sdf2      8:82   0     1G  0 part
│ └─md127   9:127  0  1023M  0 raid1 /boot
└─sdf3      8:83   0 445.1G  0 part
  └─md126   9:126  0   445G  0 raid1 /
nvme3n1   259:0    0    14T  0 disk
nvme1n1   259:1    0    14T  0 disk
nvme0n1   259:2    0    14T  0 disk
nvme2n1   259:3    0    14T  0 disk
nvme5n1   259:4    0    14T  0 disk
nvme7n1   259:5    0    14T  0 disk
└─md125     9:125  0  27.9T  0 raid0
nvme4n1   259:6    0    14T  0 disk
└─md125     9:125  0  27.9T  0 raid0
nvme6n1   259:7    0    14T  0 disk
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1] [raid0]
md124 : active raid1 sde1[1] sdf1[0]
      1049536 blocks super 1.0 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md125 : active raid0 nvme4n1[1] nvme7n1[0]
      30005577728 blocks super 1.2 512k chunks

md126 : active raid1 sdf3[0] sde3[1]
      466618368 blocks super 1.2 [2/2] [UU]
      [========>............]  resync = 43.9% (204884096/466618368) finish=21.7min speed=200056K/sec
      bitmap: 3/4 pages [12KB], 65536KB chunk

md127 : active raid1 sdf2[0] sde2[1]
      1047552 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>
[root@localhost ~]# mdadm --detail /dev/md/boot_efi | grep -E 'Version|State|active sync'
           Version : 1.0
             State : clean
    Number   Major   Minor   RaidDevice State
       0       8       81        0      active sync   /dev/sdf1
       1       8       65        1      active sync   /dev/sde1
[root@localhost ~]# ls /boot/efi/EFI/BOOT/ /boot/efi/EFI/almalinux/
/boot/efi/EFI/BOOT/:
BOOTX64.EFI  fbx64.efi

/boot/efi/EFI/almalinux/:
BOOTX64.CSV  grub.cfg  grubx64.efi  mmx64.efi  shim.efi  shimx64-almalinux.efi  shimx64.efi
[root@localhost ~]# efibootmgr -v
BootCurrent: 0007
Timeout: 2 seconds
BootOrder: 0007,0000,0008,0009,0002,0003,0004,0005,0006,0001
Boot0000* AlmaLinux     HD(1,GPT,120a7de5-e452-4399-b9ba-7f8e72ddcc98,0x800,0x200800)/File(\EFI\almalinux\shimx64.efi)
Boot0001  UEFI: Built-in EFI Shell      VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO
Boot0002  UEFI: PXE IPv4 Broadcom Network 04:32:01:EF:14:A2     PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/MAC(043201ef14a2,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot0003  UEFI: PXE IPv4 Broadcom Network 04:32:01:EF:14:A3     PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x1)/MAC(043201ef14a3,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot0004  UEFI: PXE IPv4 Broadcom Network 04:32:01:EE:FF:78     PciRoot(0x3)/Pci(0x1,0x1)/Pci(0x0,0x0)/MAC(043201eeff78,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot0005  UEFI: PXE IPv4 Broadcom Network 04:32:01:EE:FF:79     PciRoot(0x3)/Pci(0x1,0x1)/Pci(0x0,0x1)/MAC(043201eeff79,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot0006  UEFI: PXE IPv4 Intel(R) Network 30:56:0F:91:95:63     PciRoot(0x3)/Pci(0x5,0x3)/Pci(0x0,0x0)/MAC(30560f919563,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot0007* AlmaLinux     HD(1,GPT,76e2459c-6b9b-4bd8-ba75-092439da6b1b,0x800,0x200800)/File(\EFI\almalinux\shimx64.efi)
Boot0008* UEFI OS       HD(1,GPT,120a7de5-e452-4399-b9ba-7f8e72ddcc98,0x800,0x200800)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Boot0009* UEFI OS       HD(1,GPT,76e2459c-6b9b-4bd8-ba75-092439da6b1b,0x800,0x200800)/File(\EFI\BOOT\BOOTX64.EFI)..BO
[root@localhost ~]#
[root@localhost ~]#  watch -n5 cat /proc/mdstat
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1] [raid0]
md124 : active raid1 sde1[1] sdf1[0]
      1049536 blocks super 1.0 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md125 : active raid0 nvme4n1[1] nvme7n1[0]
      30005577728 blocks super 1.2 512k chunks

md126 : active raid1 sdf3[0] sde3[1]
      466618368 blocks super 1.2 [2/2] [UU]
      [=======>.............]  resync = 39.3% (183811712/466618368) finish=23.0min speed=204208K/sec
      bitmap: 3/4 pages [12KB], 65536KB chunk

md127 : active raid1 sdf2[0] sde2[1]
      1047552 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>
[root@localhost ~]# lsblk -o NAME,PARTUUID,SERIAL /dev/sde /dev/sdf
NAME      PARTUUID                             SERIAL
sde                                            S664NNMY404808
├─sde1    76e2459c-6b9b-4bd8-ba75-092439da6b1b
│ └─md124
├─sde2    85478c1b-ecea-43e3-8a7b-1ad3a403ca5c
│ └─md127
└─sde3    71fa9466-fed0-4ee7-99fb-c01cfcb7e241
  └─md126
sdf                                            S664NNMY404826
├─sdf1    120a7de5-e452-4399-b9ba-7f8e72ddcc98
│ └─md124
├─sdf2    98745725-b0ad-4366-a362-46ce367c389f
│ └─md127
└─sdf3    809653bf-fd63-4f4f-93d2-294293e64753
  └─md126

Kết quả đạt. Máy đã cài đúng thiết kế, chỉ còn chờ / sync xong.

Đối chiếu từng điểm Hạng mục Kết quả Đánh giá /boot/efi (md124) RAID1, super 1.0, [UU], sde1 + sdf1 đều active sync ✅ /boot (md127) RAID1, [UU] ✅ / (md126) RAID1, [UU], đang initial resync 35.6%, còn khoảng 25 phút ⏳ Bình thường sau khi cài Fallback bootloader /boot/efi/EFI/BOOT/BOOTX64.EFI có ✅ Boot entry NVRAM 2 entry AlmaLinux trỏ tới 2 partition GUID khác nhau ✅ Mỗi disk 1 entry Chi tiết boot entry:

Boot0007 AlmaLinux → GUID 76e2459c... (1 disk) ← đang dùng để boot (BootCurrent) Boot0000 AlmaLinux → GUID 120a7de5... (disk kia) Boot0008/0009 UEFI OS → \EFI\BOOT\BOOTX64.EFI trên cả 2 disk (firmware tự tạo) BootOrder: 0007,0000,0008,0009,... Anaconda đã tự tạo entry cho cả 2 member của ESP. Thêm vào đó còn 2 entry fallback, tức là có 4 đường boot trải đều trên 2 disk. Không cần chạy efibootmgr thêm.

Muốn biết GUID nào ứng với disk nào thì chạy (read-only):

lsblk -o NAME,PARTUUID,SERIAL /dev/sde /dev/sdf 2 điểm cần lưu ý

  1. sda đã đổi tên thành sde sau khi reboot.

Fact: trong installer có virtual media của BMC chiếm các tên sdb–sde, nên lúc đó disk mang tên khác. md không bị ảnh hưởng vì nhận array theo UUID. Điều này cho thấy tên sdX không cố định. Khi thay disk, luôn đối chiếu bằng SERIAL hoặc /dev/disk/by-id/, đừng dựa vào tên sdX.

  1. md125 (RAID0 cũ trên nvme4n1 + nvme7n1) đã được OS mới tự assemble, đúng như dự đoán. Nó chưa được mount nên chưa có tác động gì. Bạn quyết định giữ hay dọn trước khi dùng các NVMe này.

Việc tiếp theo Chờ md126 resync xong, theo dõi bằng watch -n5 cat /proc/mdstat. ⚠️ Không test rút disk trong lúc đang resync, vì lúc này disk thứ 2 chưa có đủ data. Test failover: Shutdown, rút 1 SSD (đối chiếu serial), boot thử. Cắm lại, chạy mdadm --add nếu partition chưa tự quay về array, chờ [UU]. Rút SSD còn lại và boot thử. Monitoring md: dùng mdmonitor với MAILADDR, hoặc alert node_md_disks trong hệ Alertmanager.

image
image
image
image
image
image
image
image