接着上篇,既然硬件性能大幅度提升了,那么这个配置的性能是肯定有很多富余的,所以开始折腾,给自己开个虚拟机玩玩。
本文所列的做法已经在物理机上通过并正在运行,写这篇文章我是边写边干,在另一个配置不错的VPS上面进行的。
2018.06更新:
下面内容太繁琐,而且容易出错
==============================从这开始忽视
在/etc/apt/sources.list里面加上一行:
# Debian 8 "Jessie" deb http://ftp.debian.org/debian jessie-backports main contrib
更新一下软件库:
apt-get update
安装系统头文件和virtualbox:
apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') apt-get -t jessie-backports install virtualbox
下载并且安装扩展包:
wget https://download.virtualbox.org/virtualbox/5.1.36/Oracle_VM_VirtualBox_Extension_Pack-5.1.36.vbox-extpack vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.36.vbox-extpack
这里有个小坑,因为5.1和5.2都是目前主线版本,而这个源里用的是5.1,所以我装了5.2的扩展包以后发觉不对,需要用下面这个命令先删掉5.2的才能再装5.1:
vboxmanage extpack uninstall 'Oracle VM VirtualBox Extension Pack'
==============================忽视到这里结束
VirtualBox安装的最简便方法:
1,官方下载自己系统对应的安装包,地址:https://www.virtualbox.org/wiki/Linux_Downloads
2,安装下载的包,ubuntu和debian为 dpkg -i 文件名
3,正常情况下,上一步并不会成功完成,因为缺少系统内核对应的头文件,安装步骤:
1,自动补全一些依赖的库和软件: apt-get -f install 2,安装系统内核对应的头文件,在前面步骤的时候会有提示的,一般是linux-image开头的,注意一定要安装带版本号的那个
4,再次执行第2步。
5,因为远程管理必须要用扩展包,所以下载安装:
wget https://download.virtualbox.org/virtualbox/5.2.12/Oracle_VM_VirtualBox_Extension_Pack-5.2.12.vbox-extpack vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.12.vbox-extpack
创建并且设置虚拟机的各项属性:
#创建,不多说 VBoxManage createvm --name "Win2008R2" --ostype Windows2008_64 --register #下面三行设置远程管理信息 VBoxManage modifyvm "Win2008R2" --vrdeextpack default VBoxManage modifyvm "Win2008R2" --vrde on VBoxManage modifyvm "Win2008R2" --vrdeport 12345 #设置内存和启动项顺序 VBoxManage modifyvm "Win2008R2" --memory 1024 --acpi on --boot1 dvd --nic1 nat #创建一个50G的硬盘文件 VBoxManage createhd --filename "Win2008R2.vdi" --size 51200 #添加存储控制器 VBoxManage storagectl "Win2008R2" --name "IDE Controller" --add ide --controller PIIX4 #把硬盘和ISO文件挂载上来 VBoxManage storageattach "Win2008R2" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "Win2008R2.vdi" VBoxManage storageattach "Win2008R2" --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /root/z/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd.iso #添加网卡,并且设置为桥接模式 VBoxManage modifyvm Win2008R2 --nic1 hostif --nictype1 82540EM --cableconnected1 on #启动 VBoxManage startvm Win2008R2 --type headless
简要说明,有可能需要更改的是:虚拟机的名称Win2008R2 、硬盘大小 50G、内存大小 1024M、ISO文件路径和远程管理的端口12345,当虚拟机启动以后呢,用远程桌面连上这个12345端口,其效果和VNC是一样的:
但是这里还有个小坑,因为新装的系统,默认是没开远程桌面的,而我们连上远程管理以后呢,Ctrl+Alt+Del组合键又会被我们自己的计算机拦截,所以这个登录界面有点难受,需要先点我圈中的那个按钮,然后选中这一项:
然后依次(不是同时)按下Ctrl、Alt和Del就可以登录了。
登陆以后依然有个小坑,这个远程管理和VNC有相同的问题,鼠标定位不准,这就考验基础知识了,后面写篇文章单独说这个事,总之本文慢慢点就是了。第一时间要开远程桌面,然后返回宿主机操作:
首先要设置一下转发虚拟机的网络数据:
ifconfig eth0:0 172.16.0.1 netmask 255.255.255.0 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf /sbin/iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE /sbin/iptables -A FORWARD -p tcp --syn -s 172.16.0.0/24 -j TCPMSS --set-mss 1300
我给服务器的内网IP是172.16.0.1,虚拟机是172.16.0.2 。
至此,虚拟机就可以连上网络了。
但是我们无法直接连到虚拟机的远程桌面,可以用iptables转一下,我是用的haproxy,便于管理:
listen rdpmyself bind 0.0.0.0:3389 mode tcp balance roundrobin server rdp1 172.16.0.2:3389
完事了,可以直接连上去爽一下了。
关机和重启的命令:
VBoxManage controlvm Win2008R2 poweroff VBoxManage controlvm Win2008R2 restart
修改CPU数量:
#改为2个cpu VBoxManage modifyvm "Win2008R2" --cpus 2
边写边干,但最终我这个大号的云服务器没成功,有些设备挂不上来,有些VPS应该是可以的。virtualbox的性能确实有点捉急,主观感受么,比kvm还是有差距的,但就我这个硬件情况来讲,虚拟机的性能也远胜于linode和vultr的cpu了,而且硬盘空间也够大,虽然不是ssd但也很痛快了,毕竟是独享的服务器,多虚拟几个出来也应该强于买到的vps。
起初想法很简单的,我觉得当年用这样硬件配置的个人电脑,装个vmware什么的都很常见,那么作为服务器应该也一样可行,呵呵。而且有点尴尬的是,我这有些程序和操作是必须要在Win上面搞的,而为了这些事情单独搞个工作台什么的很不划算,也没必要。
另一方面,个人建议,能在宿主机上面运行的程序就尽可能不要放在虚拟机上去,虚拟化是一定有性能损耗的,性能是一定不如物理机的。
补充:
一般来说,桥接到的网卡是不会自动探测的,所以启动的时候会报错,需要手工指定:
#用这个确定一下是不是没有桥接网卡的问题 VBoxManage showvminfo Win2008R2 -details -machinereadable #指定桥接到宿主机的eth0: VBoxManage modifyvm Win2008R2 --bridgeadapter1 eth0