静看光阴荏苒
不管不顾不问不说也不念

在NOCIX的独立服务器上开KVM小鸡

专业收废品嘞,专业收洋垃圾咯,这不前两天在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不下来了,一直在上面,鬼知道你要做什么,一点安全感都没了,烦的一批:

赞(5)
未经允许不得转载:荒岛 » 在NOCIX的独立服务器上开KVM小鸡
分享到: 更多 (0)

评论 10

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    怎么卖

    nif6年前 (2019-05-16) Google Chrome 74.0.3729.131 Google Chrome 74.0.3729.131 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • ?

      LALA6年前 (2019-05-16) Google Chrome 72.0.3626.121 Google Chrome 72.0.3626.121 Windows 10 x64 Edition Windows 10 x64 Edition回复
  2. #2

    怎么卖? :twisted: :twisted: :twisted: LaLa IDC来一发?就叫lala云?

    TheEastWind6年前 (2019-05-16) Google Chrome 74.0.3729.157 Google Chrome 74.0.3729.157 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • :arrow:

      LALA6年前 (2019-05-16) Google Chrome 72.0.3626.121 Google Chrome 72.0.3626.121 Windows 10 x64 Edition Windows 10 x64 Edition回复
  3. #3

    有个问题想请教一下lala,关闭SELinux在这篇文章中是习惯使然还是有什么作用?

    lalalala6年前 (2019-05-16) Google Chrome 74.0.3729.157 Google Chrome 74.0.3729.157 Windows 10 x64 Edition Windows 10 x64 Edition回复
  4. #4

    lala IDC 正式上线 :mrgreen:

    Fcat6年前 (2019-05-16) Google Chrome 74.0.3729.131 Google Chrome 74.0.3729.131 Mac OS X  10.14.4 Mac OS X 10.14.4回复
  5. #5

    大佬,第一个小鸡的连接地址是母鸡的公网IP:5900,那第二个小鸡怎么 vnc 连接 ?

    95275年前 (2019-07-28) Firefox 68.0 Firefox 68.0 Windows 7 x64 Edition Windows 7 x64 Edition回复
    • 我没记错的话,应该是递增,IP:5901/IP:5902这样子,也可以在VNC客户端那边直接填IP:1/IP:2这种形式。

      LALA5年前 (2019-07-30) Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿