Chương 7: Tạo backup mới — khi developer phải làm việc của DBA
Chương 7: Tạo backup mới — khi developer phải làm việc của DBA
Tạo backup cho một thế giới game online 500 năm tuổi — nghe dễ hơn làm. Rất nhiều. Giống như việc bạn được giao nhiệm vụ backup toàn bộ dữ liệu của Google bằng một cái ổ cứng di động và một sợi dây mạng chập chờn.
Tôi ngồi trước console — ánh sáng xanh lam hắt lên mặt tôi. Elara và Morgoth đứng sau lưng, hai cái bóng im lặng đang dõi theo từng lệnh tôi gõ. Sylvara ở lại Thư viện Cấm — nhưng chị ấy đã gửi cho tôi một cuốn sách qua cổng dịch chuyển: "Backup & Recovery for Dummies: Keeper Edition."
Trang đầu tiên:
"Đây là cuốn sách duy nhất về backup trong thế giới này. Vì không ai khác từng nghĩ đến việc này. Chúc may mắn."
Tôi gấp sách lại. Không cần đọc thêm. Tôi đã hiểu tình hình.
"OK. Kế hoạch: tạo một HDD ảo trên cloud."
Elara, đang đứng khoanh tay sau lưng tôi, nhướn một bên lông mày. "Cloud?"
"Storage từ xa. Không phải vật lý."
Cô ấy nghiêng đầu, tai nhọn khẽ động đậy. "Thế giới này có cái đó à?"
"System có." Tôi gõ lệnh, một file config hiện ra. "Tao thấy trong file config có dòng: backup.s3.endpoint = 'https://elysium-storage.internal'"
"Vậy sao không dùng?" Elara bước tới, nhìn vào màn hình.
"Vì cần cài driver."
"Driver?"
"Phần mềm để kết nối."
Cô ấy nhướn mày, vẻ mặt như một đứa trẻ đang nghe một người ngoài hành tinh giải thích về vũ trụ. "Và?"
"Và Keeper #3 không cài driver đó."
"...Tại sao?" Cô ấy hỏi, giọng chậm rãi, như thể đang bước vào một câu chuyện dài.
"Vì ổ cứng vật lý là backup chính." Tôi liếc nhìn cái HDD đã chết trên bàn. "Và giờ nó hỏng."
"Vậy phải cài driver?"
"Ừ."
"Lâu không?"
"Plugin đã viết sẵn từ Keeper #5 — nhưng chưa ai dùng. Cần compile."
Elara chớp mắt. "Compile?"
"Build. Dịch code."
Cô ấy im lặng năm giây — đủ để tôi nghe tiếng một con chim hót ngoài cửa sổ và tiếng gió thổi qua kẽ cửa. Rồi cô ấy nói, với giọng của một người đã hoàn toàn từ bỏ việc hiểu công nghệ: "Mày nói tiếng người được không?"
"Cần làm cái plugin. Plugin chưa được build. Tao phải build nó." Tôi thở dài, mở thư mục source code — 47 file, 1,284 dòng C, không một dòng comment. "Mất tầm vài tiếng."
"Vài tiếng?" Elara nhìn tôi, mắt mở to.
"Ít nhất."
"Trong khi server đang sắp chết?"
"Ừ."
Một tiếng thở dài khác — dài hơn, nặng hơn — vang lên từ phía sau. Rồi Elara kéo một cái ghế gỗ về phía mình — ghế kêu cót két — và ngồi phịch xuống, hai tay khoanh trước ngực. "OK. Tao đợi. Lâu quá tao ngủ."
"Ngủ đi." Tôi quay lại console, mắt dán vào dòng code C cổ xưa.
"Có gì cần không?"
Tôi không ngoảnh lại, nhưng giọng tôi rõ ràng. "Có. Im lặng."
Sáu tiếng sau.
Tôi đã compile xong plugin. Nó chạy.
Hai mắt tôi đỏ hoe, mỏi nhừ, những dòng code C in hằn vào võng mạc như những vết sẹo kỹ thuật số. Nhưng nó chạy — và tôi đã kết nối được với storage cloud. Trên console hiện ra:
✅ Kết nối thành công: elysium-storage.internal
✅ Dung lượng trống: 10 PB
⚠ Tốc độ: 1 MB/s
⚠ Thời gian ước tính cho backup 4.3TB dữ liệu: 52 NGÀY
52 ngày. Tôi nhìn con số đó — nhấp nháy, đều đặn, không thương tiếc. Server không thể trụ thêm 52 ngày. Thế giới này sẽ chết trong vòng vài tuần nếu không có backup.
"Ổ quá chậm." Tôi nói, giọng khản đặc sau sáu tiếng không uống nước.
Elara thức dậy — cô ấy đã ngủ gục trên ghế, đầu gục xuống ngực, tóc bạch kim rủ xuống che khuất khuôn mặt. Cô ấy dụi mắt, ngáp dài. "Cái gì chậm?"
"Backup. 52 ngày."
Cô ấy đứng dậy, bước tới, nhìn màn hình. "Vậy làm sao nhanh hơn?"
"Ép system ưu tiên bandwidth cho backup."
"Có làm được không?" Cô ấy gác tay lên lưng ghế tôi, hơi ấm từ cơ thể tỏa ra phía sau gáy tôi.
"Có. Nhưng game sẽ lag." Tôi xoay người trên ghế, nhìn thẳng vào mắt cô ấy. "Entity sẽ bị chậm. NPC nói chuyện delay. Combat bị freeze."
"Nói cách dễ hiểu —" Cô ấy vòng tay ra trước, ra hiệu.
"Cả thế giới sẽ khựng lại trong lúc backup."
Cô ấy nhún vai — một cái nhún vai nhẹ nhàng, như thể tôi vừa nói rằng trời sẽ mưa nhẹ vào chiều nay. "Làm đi. Dân adventurer quen rồi. Họ tưởng đó là tính năng — 'time magic'."
Tôi nhìn cô ấy, không chắc có nên tin không. Nhưng không có lựa chọn. Tôi quay lại, gõ:
> system config set backup.priority=high
> system config set network.bandwidth.backup=90%
Console:
⚠ Cảnh báo: Lag toàn thế giới có thể xảy ra.
⚠ Thời gian backup ước tính: 4 giờ.
⚠ Bạn có chắc? [Y/N]
Tôi gõ Y.
Ngay lập tức, từ bên ngoài — tiếng la hét vang lên. Một giọng nam trầm: "Á! Sao tao không cử động được?!" Một giọng nữ the thé: "Time magic! Có ai đó đang dùng time magic!" Một giọng già hơn, cố gắng trấn an: "Đừng panic! Đây là tính năng!" Và rồi hàng chục giọng cùng hét lên: "TÍNH NĂNG GÌ MÀ 4 TIẾNG MỚI XONG?!"
Tôi nhìn ra cửa sổ. Mọi người đang đứng im trên đường phố — nhưng vẫn nói chuyện được, chỉ có cơ thể là không cử động. Một số adventurer đang cố gắng nhấc tay lên, nhưng tay chân họ chậm như trong slow motion, từng chuyển động kéo dài vô tận. Một con mèo ở góc phố đang cố nhảy lên mái nhà — nhưng nó lơ lửng giữa không trung, hai chân trước chưa kịp chạm mái.
"Hài thật." Tôi nói.
"Giờ không phải lúc cười." Elara đứng dậy — động tác của cô ấy, dù ở trong phòng, cũng chậm hơn bình thường, nhưng cô ấy vẫn di chuyển được nhờ không bị ảnh hưởng bởi lag entity. "Mày có 4 tiếng. Nếu có gì xảy ra — thế giới sẽ không lag — nó sẽ chết."
"Tao biết." Tôi nhìn console, nơi thanh tiến trình backup đã bắt đầu chạy.
[████░░░░░░░░░░░░] 12% — 3 giờ 30 phút còn lại
12%. Bốn giờ — còn rất nhiều thứ có thể sai.
Ba giờ ba mươi phút sau.
Tôi không rời mắt khỏi console lấy một lần. Cà phê? Không. Nước? Cũng không. Chỉ có đôi mắt đỏ hoe dán vào thanh tiến trình — từng phần trăm, từng giây — và những lời cầu nguyện thầm lặng gửi đến các vị thần linh của thế giới fantasy này, dù tôi không biết họ có tồn tại hay không.
Thanh tiến trình:
[████████████████] 99.7% — Chờ finalize...
"Gần xong." Tôi nói, giọng khản hơn bao giờ hết.
Elara, người đã thức dậy và đứng cạnh tôi suốt hai tiếng qua, nhìn vào màn hình. "Xong thì sao?"
"Thì thế giới có backup. Lần đầu tiên sau 342 năm." Một nụ cười mệt mỏi nở trên môi tôi.
"Và mày sẽ là Keeper đầu tiên có backup thành công?"
"Ừ."
Console nhấp nháy — từng dòng hiện ra như một bản giao hưởng của những dòng chữ xanh:
⚠ FINALIZING...
⚠ Entity check: 4,372,581 entities — OK
⚠ Data integrity: 99.997% — OK
⚠ Backup size: 4.28 TB — OK
⚠ Storage location: elysium-storage://backups/elysium-v1-{date}.img
✅ BACKUP HOÀN TẤT.
✅ LẦN ĐẦU TIÊN SAU 342 NĂM.
✅ BẠN VỪA CỨU THẾ GIỚI.
Tôi ngả người ra ghế — cảm giác như mình vừa chạy một cuộc marathon. Cơ thể tôi rã rời, mắt không thể mở to hơn được nữa. Nhưng trong lòng — một cảm giác hạnh phúc thuần khiết, giống như lần đầu tiên tôi deploy thành công một dự án sau ba tháng làm việc không ngừng nghỉ. Mệt, nhưng hạnh phúc.
"Nhìn kìa." Elara chỉ ra cửa sổ.
Tôi gắng gượng quay đầu nhìn. Bên ngoài — mọi người bắt đầu cử động trở lại. Một người đàn ông ngã nhào về phía trước vì đang dồn lực để bước. Một cô gái vung tay lên trời vì đã giữ nguyên tư thế đó suốt bốn tiếng. Tiếng reo hò vang lên từ đường phố.
"Time magic hết rồi!"
"Cảm ơn thần linh!"
Rồi một giọng khác — to hơn, rõ hơn: "KHÔNG! CẢM ƠN KEEPER!"
Tôi giật mình, quay lại nhìn Elara. "Cảm ơn ai?"
Cô ấy đứng thẳng, hai tay chống hông. "KEEPER!" Từ xa, một đám đông hô vang — tôi có thể nghe tiếng vài chục người, rồi vài trăm.
"Ai bảo họ vậy?" tôi hỏi, nghi ngờ.
"Tao." Cô ấy nhún vai, giọng bình thản như đang kể chuyện thời tiết. "Tao đã nói với mấy người quan trọng — nếu có lag thì là do Keeper đang backup. Nếu backup thành công — họ biết ơn."
Tôi không nói gì. Tôi ngồi đó, nhìn ra cửa sổ, nơi những con người trong thế giới fantasy này đang hô vang tên tôi. Lần đầu tiên kể từ khi đặt chân đến thế giới này — lần đầu tiên kể từ khi chết vì một dấu chấm phẩy — tôi cảm thấy mình thuộc về một nơi nào đó. Một nơi mà tôi có thể gọi là nhà.
Console hiện dòng cuối:
🎉 Thành tích: [Backup thành công lần đầu tiên sau 342 năm]
🎉 Thành tích: [Cứu thế giới (tạm thời)]
🎉 Thành tích: [Dân chúng biết ơn]
🎉 Thành tích: [Elara nói 'mày xứng đáng']
Tôi cười, lắc đầu. "Cái cuối cùng là thành tích hiếm nhất."
"Gì?" Elara quay lại nhìn tôi.
"Elara khen người."
"CÂM ĐI!" Cô ấy hét lên, nhưng tôi thấy rõ một nụ cười không thể che giấu trên môi cô ấy, dưới ánh nến vàng của căn phòng console đầy bụi.
🌟 Notes cuối chương
| Item | Chi tiết |
|---|---|
| Backup | ✅ Thành công — 4.28TB, lần đầu sau 342 năm |
| Phương pháp | Compile driver cloud, ép bandwidth, lag 4 tiếng |
| Dân chúng | Biết ơn — hô vang tên Keeper |
| Elara | Lần đầu công nhận MC |
| Server | Ổn định tạm thời |
Chương 8 (Finale — Volume 1): Lời hứa của Keeper