Cấu hình Scratch Partition trên VMware ESXi: Tuyệt chiêu trị lỗi mất Log và Core Dump

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

Xử lý nhanh trong 5 phút qua vSphere Client

Nếu bạn đang đau đầu với cảnh báo “System logs are stored on non-persistent storage” hoặc host cài trên SD Card cứ reboot là mất sạch vết tích lỗi, hãy thực hiện ngay các bước sau:

  1. Đăng nhập vSphere Client.
  2. Chọn Host ESXi cần xử lý, chuyển sang tab Configure.
  3. Tìm đến mục System, chọn Advanced System Settings.
  4. Nhấn Edit và lọc từ khóa ScratchConfig.ConfiguredScratchLocation.
  5. Tại ô Value, nhập đường dẫn thư mục trên Datastore. Ví dụ: /vmfs/volumes/HDD_DATA_01/.locker-ESXi01.
  6. Nhấn OK và thực hiện Reboot host để kích hoạt thay đổi.

Lưu ý quan trọng: Bạn cần dùng Datastore Browser tạo sẵn thư mục (ví dụ .locker-ESXi01) trước khi nhập đường dẫn. Nếu thư mục không tồn tại, ESXi sẽ lờ đi và quay lại dùng Ramdisk như cũ.

Hệ thống server chạy VMware ESXi chuyên nghiệp

Tại sao bạn không nên bỏ qua Scratch Partition?

Đi làm thực tế mình mới thấy nhiều hệ thống chạy vài năm vẫn để mặc định. Hồi mình quản lý cụm 8 host Dell R740 cài ESXi trên thẻ nhớ SD 32GB, có lần host bị PSOD (màn hình xanh). Lúc cần tìm nguyên nhân thì log trống trơn vì chưa cấu hình Scratch Partition.

Khi cài ESXi lên ổ cứng cục bộ dung lượng lớn, hệ thống tự tạo phân vùng 4GB để làm Scratch. Đây là “nhà” của:

  • System Logs: Nhật ký vận hành giúp soi lỗi.
  • Core Dumps: Dữ liệu cực kỳ quan trọng khi host bị crash.
  • Temporary Files: Các file tạm khi cài đặt bản vá (VIB).

Thế nhưng, nếu dùng USB hoặc SD Card, ESXi sẽ đẩy Scratch vào Ramdisk (/tmp/scratch) để bảo vệ tuổi thọ thẻ nhớ. Ramdisk chỉ có dung lượng tối đa khoảng 512MB và sẽ bị xóa sạch khi mất điện hoặc khởi động lại. Điều này khiến việc troubleshoot lỗi cũ trở thành nhiệm vụ bất khả thi.

Cấu hình bằng dòng lệnh (CLI) cho dân chuyên

Dùng SSH sẽ nhanh và chuẩn xác hơn, nhất là khi bạn cần copy-paste cho nhiều host cùng lúc. Đây là quy trình mình thường áp dụng khi triển khai dự án mới.

Bước 1: Lấy UUID chính xác của Datastore

Sử dụng tên Datastore đôi khi bị lỗi nếu có khoảng trắng. Dùng UUID là cách an toàn nhất.

ls -l /vmfs/volumes/

Bạn sẽ thấy một dãy ID kiểu 5eb1a2f3-7c8d9e0f.... Hãy copy dãy này.

Bước 2: Tạo thư mục định danh cho Host

Mỗi host cần một thư mục riêng để tránh việc ghi đè log lẫn nhau.

mkdir /vmfs/volumes/5eb1a2f3-7c8d9e0f-1a2b-3c4d5e6f7a8b/.locker-Host01

Bước 3: Gán đường dẫn Scratch mới

esxcli system settings advanced set -o /ScratchConfig/ConfiguredScratchLocation -s "/vmfs/volumes/5eb1a2f3-7c8d9e0f-1a2b-3c4d5e6f7a8b/.locker-Host01"

Sau khi chạy lệnh, hãy gõ reboot để host nhận cấu hình mới ngay lập tức.

Tự động hóa với PowerCLI khi quản lý số lượng lớn

Hồi làm dự án cho ngân hàng với hơn 50 host, mình không thể ngồi click từng con. Script PowerCLI dưới đây sẽ giúp bạn tạo thư mục và set cấu hình tự động theo tên host.

# Kết nối tới vCenter
Connect-VIServer -Server vcenter.yourdomain.com

$DatastoreName = "SAN-LOG-DATASTORE"
$Hosts = Get-VMHost

foreach ($VMHost in $Hosts) {
    $Directory = ".locker-" + $VMHost.Name
    New-DatastoreItem -Datastore $DatastoreName -ItemType Directory -Path $Directory
    
    $ScratchPath = "/vmfs/volumes/$DatastoreName/$Directory"
    Set-VMHostAdvancedConfiguration -VMHost $VMHost -Name "ScratchConfig.ConfiguredScratchLocation" -Value $ScratchPath
    Write-Host "Xong host: $($VMHost.Name)" -ForegroundColor Cyan
}

Kinh nghiệm thực tế: Đừng để mất bò mới lo làm chuồng

Dưới đây là 3 lưu ý mình rút ra sau nhiều lần “xử lý sự cố” đêm khuya:

1. Tuyệt đối không dùng chung folder: Nếu trỏ 2 host vào cùng một thư mục, file vmksummary.log sẽ bị ghi đè liên tục. Hậu quả là log bị rác, không thể đọc được thông tin gì hữu ích.

2. Ưu tiên Local Storage: Nếu server có ổ SSD cục bộ, hãy đặt Scratch ở đó thay vì SAN. Nếu mạng storage (iSCSI/Fiber Channel) gặp sự cố, host vẫn ghi được log lỗi. Nếu đặt trên SAN mà SAN chết, bạn sẽ chẳng biết chuyện gì đã xảy ra.

3. Dự phòng dung lượng: Log thì nhẹ nhưng Core Dump có thể chiếm vài GB. Hãy đảm bảo Datastore còn trống ít nhất 20GB. Bạn chắc chắn không muốn vì đầy log mà ảnh hưởng đến hoạt động của các máy ảo (VM) khác trên cùng Datastore đâu.

Lời kết

Cấu hình Scratch Partition là thao tác cơ bản nhưng thể hiện sự chuyên nghiệp của người quản trị. Nó giúp bạn chủ động hơn khi hệ thống gặp sự cố. Nếu bạn đang quản lý một cụm ESXi, hãy kiểm tra ngay hôm nay để đảm bảo mọi thứ đã được lưu trữ bền vững!

Share: