专业收废品嘞,专业收洋垃圾咯,这不前两天在NOCIX买了一台15刀的堪萨斯辣鸡独服,想碰个运气抽个奖,看能不能开出个高配。
有点小惊喜,硬盘给了我2T,其他就没什么了,不得不说这家的面板太简陋了,机器没有自助重装/IPMI,据说重装只能找客服,而且每个月只能免费重装一次。。这也太不适合我这种喜欢折腾的人了吧,毕竟这机器可是有/29的IP呢。
那我就只能想个办法看能不能搞个虚拟化上去开小鸡了,初装系统是CentOS7,Proxmox就不能用了,并且硬盘还给我分配死了,2T硬盘全分到根了,用SolusVM这类也行不通了。。。
那只能全手动装KVM了(早知道去买wholesaleinternet了,同一家这个后台貌似有重装功能)
先关SELinux:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0
安装KVM需要的依赖和包:
yum -y install qemu-kvm libvirt virt-install virt-top bridge-utils
启动libvirt:
systemctl start libvirtd systemctl enable libvirtd
这里我把VNC监听在外网,待会虚拟机可以通过VNC进行图形化的安装:
sed -i 's/#vnc_listen = "0.0.0.0"/vnc_listen = "0.0.0.0"/g' /etc/libvirt/qemu.conf
重启libvirt使VNC的配置更改生效:
systemctl restart libvirtd
开IPv4转发并验证一下,如果cat回显的内容是1就说明开启成功:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p cat /proc/sys/net/ipv4/ip_forward
现在配置网卡桥接,首先给网卡配置文件做个备份,其实也没什么好备份的,万一炸了就直接发工单找客服吧(不过还好我一步到位):
cp /etc/sysconfig/network-scripts/ifcfg-enp2s0 /etc/sysconfig/network-scripts/ifcfg-enp2s0.bak
查看一下默认的主网卡配置信息:
cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
我的是下面这样:
# Generated by dracut initrd NAME=enp2s0 DEVICE=enp2s0 ONBOOT=yes NETBOOT="yes" UUID=576fefa9-bafc-4f2c-92fd-c62e074897eb IPV6INIT=no BOOTPROTO=none TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no DEFROUTE=yes IPV4_FAILURE_FATAL=no IPADDR=服务器公网IP PREFIX=29 GATEWAY=服务器网关IP DNS1=192.187.107.16 DNS2=69.30.209.16
新建一个桥接网卡br0:
nano /etc/sysconfig/network-scripts/ifcfg-br0
使用你之前查看到的配置(只把NAME/DEVICE/TYPE这三个做一下更改):
NAME=br0 DEVICE=br0 ONBOOT=yes NETBOOT="yes" UUID=576fefa9-bafc-4f2c-92fd-c62e074897eb IPV6INIT=no BOOTPROTO=none TYPE=bridge PROXY_METHOD=none BROWSER_ONLY=no DEFROUTE=yes IPV4_FAILURE_FATAL=no IPADDR=服务器公网IP PREFIX=29 GATEWAY=服务器网关IP DNS1=192.187.107.16 DNS2=69.30.209.16
接着编辑主网卡配置文件:
nano /etc/sysconfig/network-scripts/ifcfg-enp2s0
将里面的内容清空更改为下面这样:
TYPE=Ethernet NAME=enp2s0 DEVICE=enp2s0 BOOTPROTO=none ONBOOT=yes BRIDGE=br0
重启机器网络:
systemctl restart network
如果机器还有网那基本上就是桥接成功了,可以使用下面的命令检查一下:
ifconfig brctl show
现在就可以来尝试开虚拟机了,我这边打算先虚拟一个Debian9出来,所以先把Debian9的iso下载到libvirt的boot目录:
cd /var/lib/libvirt/boot wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.9.0-amd64-netinst.iso
然后使用virt-install创建虚拟机:
virt-install \ --virt-type=kvm \ --name=debian9 \ --vcpus=2 \ --ram=2048 \ --network=bridge=br0,model=virtio \ --cdrom=/var/lib/libvirt/boot/debian-9.9.0-amd64-netinst.iso \ --disk path=/var/lib/libvirt/images/debian9.qcow2,size=1000,bus=virtio,cache=writeback,format=qcow2 \ --graphics=vnc,password=imlala
执行完之后,会提示下图的回显(确保SSH不要断,直到虚拟机系统安装完成):
这个时候我们就可以通过本地的VNC客户端去连接这台虚拟机了,连接地址是母鸡的公网IP:5900,成功连接后就可以看到虚拟机安装界面了:
虚拟机内我们也需要配置一下网络,关于Debian9的网络设置,它默认会自动给你先尝试一遍DHCP,如果DHCP不能用就会弹出下面这个界面了,这时候我们选择Configure network manually(手动配置):
我的机器IP是/29,也就是5个可用IP,除去母鸡一个,还剩4个,那么这里就填写你剩下的IP地址,掩码是默认的255.255.255.0,网关填母鸡ifcfg-br0配置文件内的地址,最后设置一个DNS地址就OK了,我懒得截图了。。。
这样配毕竟太麻烦了,我要开多台小鸡的话,这样一个个手动配置太蛋疼,所以我们可以自己在母鸡上装一个DHCP服务:
yum -y install dhcp
然后打开默认的配置文件:
nano /etc/dhcp/dhcpd.conf
定义一个子网只要把我们的/29IP包含在内就行,然后写入下面的配置:
subnet xxx.xxx.241.0 netmask 255.255.255.0 { range xxx.xxx.241.243 xxx.xxx.241.246; option domain-name-servers 8.8.8.8; option routers xxx.xxx.241.241; option subnet-mask 255.255.255.0; option broadcast-address xxx.xxx.241.247; default-lease-time 600; max-lease-time 7200; }
启动DHCP服务:
systemctl start dhcpd systemctl enable dhcpd
为了验证DHCP服务是否可用,这里我再创建一台CentOS7的小鸡,还是老样子先下载iso:
cd /var/lib/libvirt/boot http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
然后和之前一样使用virt-install创建小鸡:
virt-install \ --virt-type=kvm \ --name=centos7 \ --vcpus=4 \ --ram=4096 \ --network=bridge=br0,model=virtio \ --cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1810.iso \ --disk path=/var/lib/libvirt/images/centos7.qcow2,size=1000,bus=virtio,cache=writeback,format=qcow2 \ --graphics=vnc,password=imlala
到网络和主机名这块,直接点右上角的“打开”按钮,如果可以自动获取到IP等信息那么就说明DHCP服务是正常的:
虚拟机管理常用命令:
virt-top # 查看所有虚拟机资源占用情况 virsh list # 查看正在运行的虚拟机 virsh list --all # 查看所有虚拟机 virsh autostart vmname # 设置小鸡随母鸡自启 virsh autostart --disable vmname # 取消自启 virsh start vmname # 开机 virsh reboot vmname # 重启 virsh shutdown vmname # 关机 virsh destroy vmname # 强制关机 virsh undefine vmname # 删除
上两张小鸡的bench图。。。这机器性能有够烂的,装个Debian9硬是怼了半个多小时:
CentOS7:
最后吐槽一下这个机房的沙雕技术,我最烦给我装完系统后还自行登录我系统的,登了也就算了,还TM不下来了,一直在上面,鬼知道你要做什么,一点安全感都没了,烦的一批:
怎么卖
?
怎么卖? LaLa IDC来一发?就叫lala云?
有个问题想请教一下lala,关闭SELinux在这篇文章中是习惯使然还是有什么作用?
https://www.zhihu.com/question/20559538
lala IDC 正式上线
大佬,第一个小鸡的连接地址是母鸡的公网IP:5900,那第二个小鸡怎么 vnc 连接 ?
我没记错的话,应该是递增,IP:5901/IP:5902这样子,也可以在VNC客户端那边直接填IP:1/IP:2这种形式。