Cách Xuất và Nhập Lại Snapshot Máy Chủ netcup (raw.zst qcow2)
Khi bạn vận hành máy chủ trên netcup (VPS hoặc máy chủ root), một trong những tính năng nổi bật mà bạn nhận được là khả năng chụp ảnh (snapshot) của máy ảo (VM) của mình. Những ảnh chụp này có thể được tải xuống dưới dạng tệp và lưu trữ cục bộ hoặc trên các dịch vụ lưu trữ đối tượng như S3, giúp bạn luôn có một bản sao lưu mà bạn kiểm soát.
Giới thiệu
Một trong những tính năng thú vị mà netcup cung cấp là tùy chọn xuất ảnh chụp dưới dạng tệp có thể tải xuống. Đối với nhiều gói dịch vụ, một số lượng xuất nhất định được bao gồm miễn phí, và nếu bạn cần nhiều hơn, bạn có thể mua thêm các tùy chọn xuất.
Điều này cho phép bạn giữ các bản sao ngoại tuyến hoặc bên ngoài về trạng thái VM của mình mà không chỉ dựa vào hệ thống snapshot tích hợp — đặc biệt hữu ích nếu bạn muốn tối ưu hóa lưu trữ hoặc bị mất các snapshot được lưu trong nền tảng của netcup.
🐛 Nhưng có một vấn đề:
- netcup cho phép bạn tải xuống các snapshot ở định dạng nén:
vda_snapshot.raw.zst
Tuy nhiên, khi bạn cố gắng tải lên lại tệp .raw.zst vào Bảng Điều Khiển Máy Chủ (SCP) của netcup, nó sẽ không thành công. Tại sao? Bởi vì netcup không hỗ trợ tải lên định dạng .zst — chỉ các định dạng raw, qcow và qcow2 là được hỗ trợ và chấp nhận.
Bài viết này sẽ giải thích cách tôi gặp phải vấn đề này, những ngõ cụt tôi đã đối mặt, và giải pháp hiệu quả để khôi phục máy chủ của tôi thành công từ một snapshot mà tôi đã tạo trước đó và tải xuống cục bộ trên máy tính (hoặc lưu trữ trong AWS S3).
Vấn Đề
- Tôi đã tải xuống snapshot từ netcup:
vda_alma10readysam1.raw.zst. - Tôi muốn nhập lại nó qua Upload Image → Generate Upload URL (sử dụng netcup SCP) hoặc thậm chí tải ảnh từ máy tính của tôi.
- Nhưng khi tôi cố gắng sử dụng trực tiếp, và khởi động máy chủ sau khi nhận email thông báo rằng ảnh đã được cài đặt, máy chủ không khởi động: “không tìm thấy thiết bị khởi động.”
Tại sao? Sau một vài lần thử, tôi nhận ra rằng điều này xảy ra vì .raw.zst chỉ hữu ích cho việc tải xuống. netcup không chấp nhận nó như một định dạng tải lên.
Bước 1: Giải Nén Snapshot
Đầu tiên, bạn cần giải nén tệp .zst thành hình ảnh raw. Cài đặt zstd nếu nó chưa có:
💡 Lưu ý: Tệp raw đã giải nén sẽ có kích thước tương đương với kích thước đĩa VM ban đầu của bạn (ví dụ: một VM 250 GB sẽ tạo ra một tệp raw 250 GB). Đảm bảo bạn có đủ không gian trống trên hệ thống trước khi bắt đầu giải nén.
Đầu tiên, hãy chắc chắn rằng zstd đã được cài đặt:
# AlmaLinux / Rocky
dnf install -y zstd
# Ubuntu / Debian
apt install -y zstd
Sau đó, giải nén tệp .raw.zst:
unzstd vda_alma10readysam1.raw.zst -o vda_alma10readysam1.raw
Bây giờ bạn đã có một tệp .raw.
⚠️ Cảnh báo: Kích thước tệp raw luôn bằng kích thước đầy đủ của đĩa VM của bạn. Ví dụ, nếu VM của bạn có đĩa 250 GB, tệp xuất ra .raw sẽ là 250 GB — ngay cả khi bạn chỉ sử dụng 5 GB dữ liệu thực tế.
Việc cố gắng tải lên tệp raw 250 GB sẽ là một sai lầm lớn: phần lớn nó chỉ là không gian trống (các số không), vì vậy bạn sẽ lãng phí thời gian, băng thông và tiền bạc để chuyển những dữ liệu không thực sự tồn tại.
Đó chính xác là lý do tại sao chuyển đổi sang qcow2 là cách tiếp cận thông minh hơn.
Bước 2: Chuyển Đổi Raw → qcow2
Để tiết kiệm không gian và làm cho việc tải lên khả thi, hãy chuyển đổi hình ảnh raw sang qcow2. Cài đặt qemu-img nếu chưa có:
# AlmaLinux / Rocky
dnf install -y qemu-img
# Ubuntu / Debian
apt install -y qemu-utils
Chuyển đổi tệp raw:
qemu-img convert -p -O qcow2 vda_alma10readysam1.raw vda_alma10readysam1.qcow2
Bây giờ hãy kiểm tra kết quả:
qemu-img info vda_alma10readysam1.qcow2
💡 Lưu ý rằng kích thước ảo vẫn là 256 GB, nhưng kích thước tệp thực tế chỉ là 7 GB. Đó là sức mạnh của qcow2.
Bước 3: Tải Lên netcup
-
Đăng nhập vào SCP → Media → Upload Image.
-
Nhấp vào Generate Upload URL (nhập tên tệp ví dụ vda_alma10readysam1.qcow2) và tạo URL tải lên. Cổng thông tin sẽ cung cấp cho bạn Pre-signed URL để tải tệp lên bằng
curl. -
Sử dụng curl hoặc aws s3 cp để tải lên tệp qcow2 của bạn:
url --progress-bar 'https://upload.url.from.netcup...fullurlofuploadurl...' --upload-file vda_alma10readysam1.qcow2 | cat
- Khi đã tải lên xong, chọn ảnh và triển khai nó trên một máy chủ mới.
Sau đó, máy chủ của tôi đã khởi động bình thường trở lại 🎉.
👉 Lưu ý: Bạn không cần phải sử dụng phương pháp Generate Upload URL nếu không muốn. SCP của netcup cũng cho phép bạn tải lên ảnh trực tiếp từ máy tính của mình — chỉ cần duyệt tệp .qcow2 và tải lên qua giao diện web. Điều này có thể dễ hơn cho các ảnh nhỏ hơn, nhưng đối với các tệp lớn hơn, tôi vẫn khuyên bạn nên sử dụng phương pháp URL tải lên.
Bước 4: Lưu Trữ Snapshots Của Bạn An Toàn
Thay vì chỉ giữ snapshots trong netcup, bạn có thể lưu trữ chúng bên ngoài (sau khi đã xuất).
Bằng cách này, bạn có thể dễ dàng nhập lại ảnh sau này, hoặc thậm chí chạy nó trên nền tảng ảo hóa khác hỗ trợ qcow2 (Proxmox, KVM, v.v.).
Bài Học Rút Ra
-
.raw.zstchỉ là chỉ để tải xuống. Bạn không thể nhập lại nó vào netcup. -
Bạn phải chuyển đổi nó sang raw, qcow, hoặc qcow2 — với qcow2 là lựa chọn hiệu quả nhất của tôi.
-
Luôn xác minh hình ảnh qcow2 của bạn với
qemu-img infotrước khi tải lên. -
Lưu trữ snapshots qcow2 bên ngoài (S3, ổ đĩa cục bộ, NAS) giúp phục hồi thảm họa dễ dàng hơn nhiều.
Kết Luận
Điều gì bắt đầu như một lỗi “không có thiết bị khởi động 🤯” lại trở thành một trải nghiệm học tập thú vị. Bằng cách giải nén và chuyển đổi snapshot, tôi đã có thể khôi phục VM của mình một cách sạch sẽ và giữ lại các bản sao lưu nhỏ gọn, dễ dàng cho tương lai.
Để bạn có thể thấy sự tiết kiệm:
- Snapshot gốc (.raw.zst) là 4.6 GB.
- Sau khi giải nén thành raw, nó đã nở ra thành 256 GB (khớp với kích thước đĩa đầy đủ).
- Khi chuyển đổi sang qcow2, nó đã thu nhỏ về chỉ còn 7.4 GB — đủ nhỏ để lưu trữ và tải lên một cách hiệu quả.
Nếu bạn đang vận hành máy chủ trên netcup, đừng chỉ dựa vào việc tải xuống các snapshot .raw.zst. Hãy chuyển đổi chúng, sao lưu đúng cách và đảm bảo bạn có thể nhập lại khi cần. Bản thân bạn trong tương lai sẽ cảm ơn bạn.
Câu Hỏi Thường Gặp (FAQ)
1. Tôi có thể tải lên trực tiếp tệp .raw.zst không?
Không, netcup không hỗ trợ tải lên định dạng .raw.zst. Bạn cần chuyển đổi nó sang .raw, .qcow hoặc .qcow2.
2. Có cách nào để giảm kích thước snapshot không?
Có, chuyển đổi từ raw sang qcow2 giúp giảm kích thước tệp bằng cách lưu trữ dữ liệu thực tế và loại bỏ không gian trống.
3. Tôi nên lưu trữ snapshots ở đâu?
Bạn nên lưu trữ snapshots bên ngoài, như S3 hoặc ổ đĩa cục bộ, để dễ dàng khôi phục khi cần.
4. Có cần kiểm tra hình ảnh qcow2 trước khi tải lên không?
Có, bạn nên sử dụng qemu-img info để xác minh hình ảnh trước khi tải lên để đảm bảo nó không bị lỗi.