01 May, 2020
Cài Windows 10 lên Google Cloud (bài viết cũ)
⚠️ Sau đây là post cũ từ 2019, xin vui lòng KHÔNG làm theo vì nó đã lỗi thời rồi (để đọc cho vui). Nếu bạn muốn cài Windows lên Google Cloud, hãy làm theo hướng dẫn mới tại đây:< https://blog.ngxson.com/cai-windows-10-len-google-cloud/>
Cách đây 1 tuần, mình rời nhà để bắt đầu kỳ nghỉ hè. Dù muốn chơi game “hạng nặng” nhưng ở đây lại không có dàn gaming nào, vậy là mình nảy ra ý định cài thuê 1 server để chơi game trên google cloud, với giá khá rẻ (khoảng $0.6 / giờ).
Lúc đầu mình dùng Windows Server 2019 mặc định, nhưng cuối cùng game mình chơi không tương thích (RiME), vậy nên mình đành phải tìm cách cài Windows 10 LTSC. Ngoài ra, việc dùng Windows 10 cũng giúp giảm chi phí thuê server, vì thật ra Windows Server thuê khá đắt.
Trong bài viết này, mình sẽ kể lại các bước cài Windows 10 lên VPS Google Cloud. Các bạn cần chuẩn bị:
- Tài khoản google cloud đã add credit card (Lưu ý: nếu bạn dùng free trial $300, bạn sẽ không thể add GPU)
- ISO đĩa cài Windows 10 (nên dùng bản Pro hoặc như mình là LTSC Entreprise)
- VirtualBox (để tạo disk image trước khi up lên google cloud)
- VirtIO driver: tải ở đây
- Mạng cáp quang (sẽ cần upload disk image nặng khoảng 10GB, ngoài ra cần ping thấp nếu bạn muốn chơi game)
Mục lục
- Phần 1: Chuẩn bị file đĩa cứng (vdi)
- Tạo VM trên VirtualBox
- Cài driver SCSI và Ethernet
- Bật RDP
- Phần 2: Upload disk image lên google cloud
- Tạo bucket và upload
- Import file vdi vào compute engine image
- Tạo instance
- Phần 3: Cài driver trên google cloud
- Driver PCI
- Driver NVIDIA GRID
- Phần 4 (tùy chọn): Cài các phần cần cho gaming
- Chi phí sử dụng
Phần 1: Chuẩn bị file đĩa cứng (vdi)
Tạo VM trên VirtualBox
Tạo VM mới trên VirtualBox với các thông số sau:
- CPU / RAM chọn tùy ý bạn
- Disk: tạo file đĩa cứng định dạng vdi, tối thiểu 40GB
Sau khi tạo xong, hãy bấm Settings để cài thêm một vài thông số:
Network
Adapter 1: Attached to NAT
Adapter 2: Attached to NAT => click vào Advance => Adapter type: paravirtualized network
Storage
Kiểm tra lại xem controller này có type: AHCI hay chưa. Gắn thêm đĩa cài win và đĩa virtio vào.
Tạo thêm virtio-scsi controller, tạo 1 ổ đĩa cứng dung lượng 1GB trong controller này (ổ đĩa này không dùng để lưu trữ, chỉ dùng để win 10 nhận driver VirtIO)
Khởi động máy ảo, cài windows như bình thường (nhớ đặt password cho user của bạn windows, cái này bắt buộc)
Cài driver SCSI và Ethernet
(phần này mình quên ko chụp ảnh, các bạn thông cảm làm theo hướng dẫn chay nhé)
Sau khi cài xong xuôi và khởi động lên, hãy copy toàn bộ các thứ trong đĩa CD virtio sang thư mục Documents/virtio
Vào Devices Manager. Bạn sẽ thấy SCSI và Ethernet chưa nhận diện được.
Click chuột phải vào từng cái => Update driver => Browse my computer for driver => chọn thư mục Documents/virtio
Sau đó, 2 driver này sẽ được cài đặt. Còn driver nào khác không cài đc thì có thể kệ nó, vì ở đây mình chỉ cần cài đc virtio.
Bật RDP
Vào Settings > System > Remote Desktop, bật nó lên
Vào Control Panel > Windows Defender Firewall > Turn Windows Defender Firewall on/off
Sau đó, nếu muốn test, bạn có thể chuyển Network của VirtualBox sang Bridge hoặc Host-Only, và thử RDP vào máy ảo
Phần 2: Upload disk image lên google cloud
Bạn cần tạo Project mới trên Google Cloud Console. Ở phần này, bạn nên dùng free trial credit (nếu có).
Tạo bucket và upload
Vào Google Cloud Storage, tạo bucket mới. Bạn nên chọn location ở cùng vị trí mong muốn đặt VPS. Sau đó, hãy vpload file .vdi của VirtualBox lên bucket mới tạo.
Import file vdi vào compute engine image
Vào Compute Engine > Images > Create an image
Đặt tên tùy ý bạn, ở Source chọn Virtual disk, sau đó chọn file vdi ở trong cloud storage
Ở phần Operating system on virtual disk, chọn No operating system. Data only
Quá trình import sẽ mất khoảng 30 phút – 1 tiếng
Tạo instance
Từ bước này, bạn không được dùng $300 free trial của google cloud nữa. Hãy tắt free trial để tiếp tục.
Vào VM instance > Create
Nên chọn tối thiểu là 2 vCPU và 7.5 GB RAM
Chọn advance > add GPU > Tesla P4 (giá rẻ) hoặc Tesla P100 (đắt hơn)
Tick vào ô virtual workstation
Chú ý: Không phải region nào cũng có GPU, vậy nên hãy thử các location khác nhau. Ngoài ra, GPU phải hỗ trợ virtual workstation (phải tick được vào ô virtual workstation ở dưới)
Tick vào ô Turn on display device
Ở phần Boot disk, chọn Custom image > Image vừa tạo ở bước trên
Ở dưới cùng, sẽ có ô chọn Preemptibility > On
Khởi động instance, có thể vào tab Screenshot để xem máy đang hiện gì (nếu bị lỗi blue screen hay không nhận network, hãy làm lại từ đầu và đọc kỹ hướng dẫn)
Nếu như máy khởi động thành công, bạn có thể dùng Remote Desktop Connecting (RDP) để truy cập máy ảo từ xa bằng IP public của nó. Hãy nhớ kiểm tra trên firewall trên google cloud có mở port TCP 3389
Sau khi cài xong xuôi, hãy vào Image và xóa Image bạn đã tạo (nhớ vào cả Storage để xóa bucket nữa). Nếu bạn không xóa, bạn sẽ bị tính phí lưu trữ theo cho image và bucket.
Phần 3: Cài driver trên google cloud
(phần này mình quên ko chụp ảnh, các bạn thông cảm làm theo hướng dẫn chay nhé)
Kết nối tới instance. Vào Devices Manager. Bạn sẽ thấy PCI chưa nhận diện được (driver 3D là của GPU)
Bạn lại bấm chuột phải => Update driver => Browse my computer for driver => chọn thư mục Documents/virtio
Đối với driver GPU, bạn cần tải GRID driver tại https://cloud.google.com/compute/docs/gpus/install-grid-drivers#grid-driver-windows
Sau đó cài trên instance. Sau khi cài xong, hãy khởi động lại
Phần 4 (tùy chọn): Cài các phần cần cho gaming
Bấm chuột phải vào nút Start > PowerShell (Admin)
Nhập lệnh Set-ExecutionPolicy RemoteSigned
Bấm enter
Tiếp theo, mình cài Parsec để dùng làm phần mềm remote PC. Parsec cho trải nghiệm tốt hơn RDP hay Teamviewer (độ trễ thấp hơn nhiều).
Truy cập https://github.com/parsec-cloud/Parsec-Cloud-Preparation-Tool
Lần lượt nhập các lệnh ở phần Instructions
Đến cuối sẽ có một vài thứ bị lỗi (ví dụ GPU driver updater), bạn có thể kệ nó, vì driver này đã cài từ bước trên
Đăng nhập / Tạo tài khoản Parsec
Khởi động lại instance một lần nữa là xong!
Chi phí sử dụng
Phí chạy instance sẽ tính đúng theo thời gian máy bật, vì vậy, lúc nào không dùng nữa, bạn cần nhớ tắt nó đi. Với chế độ Preemptibility, máy sẽ tự động tắt sau 24h (nên nếu quên không tắt thì cũng không mất nhiều tiền)
Cấu hình mình chọn là 4 vCPU + 17.5 GB RAM, GPU Tesla P4. Giá để chạy vào khoảng $0.6 / giờ. Với GPU Tesla P100 thì cao hơn chút, vào khoảng $0.8 – $0.9 / giờ.
Ngoài phí chạy instance, bạn sẽ bị tính phí lưu trữ đĩa cứng nữa. Với disk dung lượng 50GB mình tạo thì mất khoảng $2.2 / tháng. Disk này được giữ đến chừng nào bạn xóa instance.