Làm thế nào để chắc chắn rằng một VM tắt đúng cách?


0

Máy chủ gia đình của tôi chạy một số máy chủ khác thông qua VirtualBox trong VM.

Cụ thể, tôi có một máy chủ web vì một số lý do, nếu nó không được tắt đúng cách, không tự động chọn trên menu grub, nghĩa là nó bị treo cho đến khi tôi tự đặt lại trên máy chủ.

Làm cách nào để đảm bảo rằng máy ảo của tôi tắt đúng cách bất cứ khi nào máy chủ của tôi tắt?

Thông tin bổ sung: "Máy chủ" thực sự là một máy tính xách tay cũ và nó đang chạy Ubuntu Desktop 11.04 và không đầu (cũng chạy trung tâm truyền thông).


Vậy máy chủ của bạn là Ubuntu, nhưng máy khách VM với máy chủ web là gì?
slhck

Ngoài ra Ubuntu, Ubuntu Server 11.04
Malfist

Câu trả lời:


1

Bạn có thể dùng VBoxManage lệnh để điều khiển các máy ảo của bạn từ dòng lệnh. Điều này cho phép bạn tạo một tập lệnh có thể tắt vm của bạn trước khi tắt nguồn.

Bạn có thể chạy một kịch bản rất cơ bản để tắt vm và; chủ nhà ...

#!/bin/bash
# poff.sh - poweroff the vm, then the host...

VBoxManage controlvm VMNAME acpipowerbutton && sudo shutdown -P 1

Hoặc, bạn có thể sử dụng các lệnh tương tự như bí danh được thêm vào tệp .bashrc của mình ...

alias poff='VBoxManage controlvm VMNAME acpipowerbutton && sudo shutdown -P 1' # poweroff the vm, then the host...

Đây là những ví dụ rất cơ bản có thể được xây dựng để phù hợp với yêu cầu chính xác của bạn. Chúng cũng có thể cần được sửa đổi để hoạt động chính xác với cấu hình HĐH của bạn.


Làm thế nào tôi có thể đảm bảo điều này chạy và tạm dừng tắt máy cho đến khi hoàn thành khi máy tính tắt?
Malfist

Ngay bây giờ, lệnh tắt máy cho vm 1 phút để tắt nguồn. Bạn sẽ cần phải kiểm tra điều này với thiết lập của bạn để xem nó có cần điều chỉnh không. Để biết thêm thông tin, hãy nhìn vào man shutdown cho những lựa chọn đó, và VBoxManage --help để xem thêm tùy chọn cho controlvm. Bạn cũng có thể thêm logic điều kiện để kiểm tra trạng thái của quá trình vm trước khi gọi tắt máy.
Joe Internet

Sử dụng VBoxManage showvminfo MyVM --machinereadable và tìm tài sản VMState để trở thành "poweroff" (hoặc bất cứ thứ gì khác ngoài "đang chạy")
RolKau

0

Tôi đã làm điều này bằng cách sử dụng qemu chạy trên Debian lưu trữ Windows Server 2003 VM. Tôi đã bật "Dịch vụ quản lý khẩn cấp" trên máy ảo Win2k3. Điều này cung cấp cho bạn "Bảng điều khiển quản trị đặc biệt" trên cổng nối tiếp. qemu cho phép bạn kết nối một cổng nối tiếp ảo với cổng "telnet", vì vậy tôi đã cho nó một địa chỉ localhost. SAC cho phép bạn tắt hệ thống sạch sẽ thông qua việc ra lệnh thông qua cổng nối tiếp và vì nó giống như "cửa sau khẩn cấp" nên nó có xu hướng rất đáng tin cậy bất kể điều gì khác có thể xảy ra trong VM.

Sau đó tôi đã tạo ra một bản tóm tắt expect tập lệnh để "đăng nhập" vào SAC dựa trên nối tiếp và ban hành lệnh tắt máy. Điều này đã được gói trong một kịch bản khác sẽ gọi đây expect kịch bản và chờ 2 phút để quá trình qemu chết. Nếu quá trình không chết, thì nó sẽ giết chết nó. Việc cài đặt Linux để gọi tập lệnh này khi tắt máy đảm bảo VM luôn tắt sạch nếu có thể.

Vì vậy, bạn có thể có thể thích ứng phương pháp này với tình huống của bạn.

Nếu bạn có máy ảo Linux thì bạn thực sự có thể tạo một tập lệnh nhỏ trên hệ thống Ubuntu đăng nhập vào máy ảo thông qua ssh và gọi một tập lệnh tắt hệ thống đúng cách.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.