Kimsufi独服通过虚拟KVM安装ISO镜像、配置Raid0、开NATIPv4+IPv6双栈小鸡(Proxmox7)
2021-12-10 10:25:59    27    0    0
emengweb

方案是用zfs做raid0,并且把zfs作为proxmox的根文件系统。那现在问题就来了,想实现这一套方案的话,安装proxmox就只能用iso来装了,但是这机器没有ipmi,咋办呢?

好在kimsufi后台还提供了一个基于debian的救援系统!我们可以在这个救援系统里面安装kvm然后把硬盘直通给虚拟机来安装proxmox。这里就记录一下折腾的过程。

首先登录到kimsufi的后台,把这个监控关了:

这里说下为啥要把这个关了,因为如果你开着这个,到时候装系统要是配置哪里出了问题导致机器网络不通的话,你在后台执行硬重启会卡很久,因为它这个监控会ping你的机器ip,如果不通的话就会卡很久才有反应,很浪费时间,所以这里先关了,后面等配置全部好了后再打开。

接着点右上角的Netboot,在里面选择Rescue,然后点Next:

点Confirm:

再点右上角的Restart执行硬重启,等待片刻,邮箱里面会收到救援系统的ssh登录ip/账号/密码。

登录到救援系统内,首先查看硬盘的基本情况:

lsblk

可以看到之前系统做了raid1:

查看阵列状态:

mdadm --detail /dev/md127

可以看到这个阵列当前正在工作:

我们需要先停止这个阵列:

mdadm --stop /dev/md127

然后删除两块硬盘的分区表:

wipefs -a /dev/sda
wipefs -a /dev/sdb

在这个救援系统内查看机器的公网ip,并记录备用:

ip a

回显类似:

eth0:...
  link/ether ...
  inet xx.xx.xx.xx ...

查看网关ip:

ip route list

回显类似:

default via xx.xx.xx.xx dev eth0

查看dns:

cat /etc/resolv.conf

回显类似:

nameserver 213.186.33.99

查看机器的ipv6地址:

ip -6 a

回显类似:

查看机器的ipv6网关:

ip -6 route list

回显类似:

kimsufi的网站上虽然标明每台机器只有/128的ipv6,但实际可用应该是/64,为了后续的步骤能够正常进行,这里先简单检查一下机器到底能用多少个ipv6,可以先往机器的主网卡接口添加一个ipv6测试:

ip addr add 2001:41d0:x:xxxx::2/128 dev eno1

在别的机器上能ping通刚添加的地址就说明可用的ipv6不止/128:

记住这些,待会安装的时候需要用到。

安装kvm:

apt -y update
apt -y install qemu qemu-kvm

下载proxmox的iso:

wget http://download.proxmox.com/iso/proxmox-ve_7.1-2.iso

启动虚拟机:

qemu-system-x86_64 \
-enable-kvm \
-nodefaults \
-cdrom /root/proxmox-ve_7.1-2.iso \
-hda /dev/sda \
-hdb /dev/sdb \
-cpu host \
-smp 4 \
-m 8G \
-net nic \
-net user \
-vga std \
-vnc 0.0.0.0:0 \
-usbdevice tablet \
-k en-us

用vnc客户端连接ip:5900,正常的话就能看到proxmox的安装界面了:

一步一步跟着安装进程走,到硬盘这里,选择zfs(raid0):

网络配置这里,把之前查看得到的ip/网关/dns填写上去:

确认无误后开始安装:

安装完成后,登录到proxmox的控制台,编辑grub配置文件:

nano /etc/default/grub

修改如下配置,加入net.ifnames=0 biosdevname=0内核启动参数:

GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 biosdevname=0"

更新grub:

update-grub

然后编辑网卡配置文件:

nano /etc/network/interfaces

默认的配置应该是这样:

auto lo
iface lo inet loopback

iface ens3 inet manual

auto vmbr0
iface vmbr0 inet static
        address xx.xx.xx.xx/24
        gateway xx.xx.xx.xx
        bridge-ports ens3
        bridge-stp off
        bridge-fd 0

改为:

auto lo
iface lo inet loopback

iface eth0 inet manual

auto vmbr0
iface vmbr0 inet static
	address xx.xx.xx.xx/24
	gateway xx.xx.xx.xx
	bridge-ports eth0
	bridge-stp off
	bridge-fd 0

iface vmbr0 inet6 static
        address 2001:41d0:x:xxxx::ffff/64
        gateway 2001:41d0:x:xxxx:ff:ff:ff:ff

auto vmbr1
iface vmbr1 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE

这里解释一下为何这么配置。首先是加了net.ifnames=0 biosdevname=0这两个内核启动参数,让网卡接口的命名强制统一变为ethX。

这样做可以解决机器重启后找不到网卡接口的问题。因为通过虚拟机安装的proxmox网卡名和宿主机的网卡名是对不上的。

kimsufi不能加ip,要开小鸡只能开nat,所以下面的vmbr1是为nat小鸡准备的。

重启网络服务:

systemctl restart networking.service

正常的话,现在母鸡的ipv6就通了:

为了让小鸡也能用上ipv6,现在还需要做一系列的配置。首先开启ipv6转发:

echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf && sysctl -p

然后安装ndppd:

apt -y install ndppd

编辑ndppd的配置文件:

nano /etc/ndppd.conf

写入如下配置,ipv6地址块换成你自己的:

proxy vmbr0 {
  rule 2001:41d0:x:xxxx::/64 {
    static
  }
}

重启ndppd服务使其生效,并设置开机自启:

systemctl restart ndppd.service
systemctl enable ndppd.service

现在开小鸡的话ipv6实际上就能用了,但是只能手动设置小鸡的ipv6地址,每台都手动设置的话太麻烦,重复劳动浪费时间,所以这里可以配置radvd实现slaac。

安装radvd:

apt -y install radvd

新建radvd配置文件:

nano /etc/radvd.conf

写入如下配置,ipv6地址块换成你自己的:

interface vmbr0 {
  AdvSendAdvert on;
  MinRtrAdvInterval 3;
  MaxRtrAdvInterval 10;
  prefix 2001:41d0:x:xxxx::/64 {
    AdvOnLink on;
    AdvAutonomous on;
    AdvRouterAddr on;
  };
};

重启radvd服务使其生效,并设置开机自启:

systemctl restart radvd.service
systemctl enable radvd.service

做完这些改动后,把运行这台proxmox的虚拟机关机:

systemctl poweroff

回到kimsufi的控制台,把系统启动模式改为从硬盘启动:

再点右上角的restart执行硬重启。等待片刻,如果一切正常的话,现在应该就可以访问到proxmox的webui了:

 

下面是开小鸡时的设置,注意不论是lxc还是kvm架构的小鸡,我这个配置统一都需要添加两个网卡。

对于lxc小鸡,在创建的时候可以先添加一个用于ipv6网络的eth0,桥接vmbr0,ipv6选择slaac:

等小鸡创建完成后再添加一个用于ipv4网络的eth1,桥接vmbr1,手动配置ipv4的地址和网关:

正常情况下,小鸡现在就是natipv4+ipv6双栈网络了:

对于kvm小鸡,实际操作大同小异,这里我就开个debian11的小鸡演示一下配置。

创建的时候先添加一个桥接vmbr0的网卡:

等小鸡创建完成后再添加一个桥接vmbr1的网卡:

打开vnc控制台开始安装系统:

这里有两块网卡ens18和ens19,实际ens18对应vmbr0,ens19对应vmbr1,这里选择ens18就可以实现ipv6的slaac:

至于ens19那块对应vmbr1的网卡,等待系统安装完成后手动配置ipv4即可。

接下来需要配置一个dns:

剩下的就是设置root密码,创建普通用户,还有分区这些了,这里就不多说了。等系统安装好,登录进去后,测试ipv6是否正常:

现在这台小鸡只有ipv6,如果还需要natipv4的话就得修改网卡配置文件,默认的配置是这样:

只需要在文件的尾部添加ens19网卡的ipv4配置:

auto ens19
iface ens19 inet static
	address 192.168.0.4/32
	gateway 192.168.0.1

然后添加一个dns服务器:

nano /etc/resolv.conf

写入如下配置:

nameserver 8.8.8.8

重启机器即可。

在母鸡上做dnat,把小鸡的ssh端口暴露出来:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 16823 -j DNAT --to-destination 192.168.0.4:22

最后在这台kvm小鸡内跑个bench,简单测试一下各项配置:

 

 

来源1 https://lala.im/8123.html

来源2 https://lala.im/8145.html

 

 

上一篇: Docker无法启动处理方法

下一篇: Proxmox VE 7.1 日常维护,去掉未订阅的提示

27 人读过
文档导航