Proxmox 虚拟化
debian12 + nas + pve 高度集成使用方便
关键设备要专用,应用设备要通用
https://192.168.22.25:8006/
cat /etc/os-release
systemctl disable systemd-networkd-wait-online.service ##不等待其他服务
彩色终端
vi ~/.bashrc
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\[\e[33;40m\]\h \[\e[35;40m\]\[\e[37;40m\]\t \[\e[36;40m\]\w]\[\e[0m\]\\$ "
启动显示进度
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="splash verbose"
update-grub
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list
记得设置 关机超时时间。以免失控
系统级应用kvm
内核级用lxc
lxc管理(pct)
配置文件
cd /etc/pve/lxc/
ls -l
lxc命令创建
pvx下 openwrt 只能用 命令创建
解锁容器
pct list
pct unlock 123
pct create 2000 /var/lib/vz/template/cache/openwrt-23.05.1-x86-64-rootfs.tar.gz \
--arch amd64 --hostname lxc-OpenWrt --rootfs local-lvm:8 --memory 1024 -swap 0 --cores 4 \
--ostype unmanaged --unprivileged 0 -net0 bridge=vmbr1024,name=eth0
磁盘0.5GB 内存500MB
进入终端
pct start 2000
pct enter 2000 #进入终端
lxc-attach 2000 #进入终端
下载ct模板
tar.zst模板
web界面可直接下载
pveam list local
wrt模板
https://downloads.immortalwrt.org/releases/23.05.1/targets/x86/64/immortalwrt-23.05.1-x86-64-rootfs.tar.gz
http://downloads.openwrt.org/releases/23.05.1/targets/x86/64/openwrt-23.05.1-x86-64-rootfs.tar.gz
http://downloads.openwrt.org/releases/21.02.7/targets/x86/64/openwrt-21.02.7-x86-64-rootfs.tar.gz
CT模板
wget https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/debian/bookworm/amd64/default/20241112_05%3A24/rootfs.tar.xz -O /var/lib/vz/template/cache/debian12-standard-amd64.tar.xz
wget https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/jammy/amd64/default/20241008_07%3A42/rootfs.tar.xz -O /var/lib/vz/template/cache/ubuntu22.04-standard-amd64.tar.xz
sudo 普通用户
vi /etc/sudoers
jack ALL=(ALL:ALL) ALL
lxc创建docker
模式
-
轻应用非特权模式
-
重应用特权模式 (不能轻易切换)
lxc无特权模式
勾上无特权模式
直接装docker即可
lxc特权模式
特权模式
-
需要在功能中全部勾选
-
配置中加入支持docker
lxc.apparmor.profile: unconfined
lxc.cap.drop:
qm管理(kvm)
强制关机
qm stop 102
查看配置
qm config 102
添加spice显示协议
qm set 102 --vga qxl --tablet yes
配置文件加入
tablet: yes
直通设置
硬件是否支持虚拟化
egrep --color 'vmx|svm' /proc/cpuinfo
lsmod |grep vm
硬件PCI设备直通
查看是否支持直通设备组
lsmod | grep vfio
映射直通
查看硬盘
ls -lh /dev/disk/by-id
适用于kvm
映射硬盘到kvm
qm set 101 -sata1 /dev/disk/by-id/ata-WDC_WD5000AAKX-001CA0_WD-WCAYUF892278
qm set 101 -sata2 /dev/disk/by-id/ata-WDC_WD5000AAKX-22ERMA0_WD-WCC2EYP45614
vi /etc/pve/qemu-server/100.conf
scsi2: /dev/sdb,iothread=1
适用于lxc
ls -al /dev/sd*
得到磁盘裸id,修改 /etc/pve/lxc/虚拟机ID.conf
lxc.cgroup2.devices.allow = b 8:* rwm
lxc.mount.entry = /dev/sda dev/sda none bind,optional,create=file
lxc.cgroup.devices.allow
:直接访问设备 ,pve7.0后cgroup无效 用cgroup2
lxc.mount.entry
:设备映射
pve8使用映射
(无特权模式 )挂载变只读就是mount
特权模式后不能更改:更改后后面的文件权限回不去
pct set 102 -mp1 /dev/sda1,mp=/mnt/sda1
pct set 102 -mp2 /dev/sdb1,mp=/mnt/sdb1
pct set 102 -privileged 1
pct set 102 -features fuse=1,mount=nfs;cifs,nesting=1
支持网络虚拟网卡
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
lxc.cgroup2.devices.allow: c 10:200 rwm
kvm虚拟化
命令创建kvm主机
qm create 114 \
--agent 1 \
--machine q35 \
--ostype l26 \
--scsihw virtio-scsi-pci \
--serial0 socket \
--cores 2 --sockets 1 --cpu host \
--bios seabios --boot cdn \
--net0 virtio,bridge=vmbr0
导入kvm虚拟机
qm importdisk <vmid> <source> <storage>
qm importdisk 102 ubuntu-18.04.vmdk local-lvm --format=qcow2
系统管理
调整分区
parted
print
resizepart 2 12GB
启动后查看服务
systemctl list-units --type=service
设置ip和dns
ip addr add 192.168.22.35/24 dev eth0
ip route add 0.0.0.0/0 via 192.168.22.5 dev eth0
替换源
换源
cp /etc/apt/sources.list /etc/apt/sources.list~
sed -i 's|archive.ubuntu.com/ubuntu|mirrors.tuna.tsinghua.edu.cn/ubuntu|g' /etc/apt/sources.list
sed -i 's|security.ubuntu.com/ubuntu|mirrors.tuna.tsinghua.edu.cn/ubuntu|g' /etc/apt/sources.list
替换下载源
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
systemctl restart pvedaemon.service
安装更新工具
apt install apt-transport-https ca-certificates gpg software-properties-common lsb-release wget curl
apt install debian-keyring debian-archive-keyring
添加存储
smb添加
数据中心-》存储-》添加-》smb/cifs
云主机运维
常用工具
- pvesh 命令行api客户端
- proxmoxer 程序模块
api访问
申请token
数据中心-》权限-》api令牌
token模式
需要后台创建 apitoken (不要勾选特权分离)
curl -k -H 'Authorization: PVEAPIToken=root@pam!test=0f7a2e62-...-....-....-b319c6541507' https://192.168.0.124:8006/api2/json/cluster/resources
远程地址
spice地址获取
path = '/api2/json/nodes/{node}/qemu/{vmid}/spiceproxy'.format(node="pve",vmid=102)
url = 'https://' + ip + ':' + port + path
headers = {'Authorization': 'PVEAPIToken=' + token}
r = requests.post(url=url, headers=headers, verify=False)
r.text
r.json()
集群
改名
hostnamectl set-hostname pve14
更新host
数据中心.节点.系统.主机
查看节点
ls -lh /etc/pve/nodes/*
mv /etc/pve/nodes/old /etc/pve/nodes/new
创建集群
数据中心.集群.创建集群
pvecm create pvecluster
pvecm status
加入集群
空节点才能加入集群
pvecm add 192.168.0.124
删除集群
网络集群非常危险,特别是发生脑裂时
pvecm delnode <NodeName>
rm -rf /etc/pve/corosync.conf
rm -rf /etc/corosync/*
systemctl restart pve-cluster
systemctl restart corosync
强制删除
systemctl stop pve-cluster
systemctl stop corosync
rm -rf /etc/corosync/*
rm -rf /var/lib/pve-cluster/*
rm -rf /etc/pve/.members
重启脱离集群
连接节点
校准时间ntp
ntpdate pool.ntp.org
迁移lxc
迁移快照 有风险,建议用备份和恢复
备份
多用备份,少用克隆和模板,lxc 用挂起备份 快照涉及到lvm 。可以在硬盘高级选型中跳过某盘备份
数据中心.节点.虚拟机.备份.立即备份
异地还原用
scp /var/lib/vz/dump/vzdump-lxc-103-2024_11_08-08_31_00.tar.gz root@192.168.14.126:/var/lib/vz/dump/vzdump-lxc-103-2024_11_08-08_31_00.tar.gz
还原
节点.local.备份.还原
无法关机
使用批量关机或设置关机超时时间
cd /var/lock/qemu-server
rm lock-106.conf
qm stop 106
从12安装pve
多系统二合一
lscpu | grep Virtualization
usermod -a -G _ssh jack
hostname --ip-address
echo "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-enterprise.list
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list
wget https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
apt update
apt full-upgrade
删除默认内核使用pve内核
apt install proxmox-default-kernel
update-grub
systemctl reboot #重启后使用pve内核
apt remove linux-image-amd64 'linux-image-6.1*'
apt install proxmox-ve open-iscsi chrony openssl postfix
apt --no-install-recommends --no-install-suggests install proxmox-ve openssl postfix
网卡配置
ifupdown2 /etc/network/interfaces
auto lo
iface lo inet loopback
iface enp3s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.11.109/24
gateway 192.168.11.1
bridge-ports enp3s0
bridge-stp off
bridge-fd 0
生效
ifquery --check -a
systemctl restart networking.service
systemctl enable networking.service
磁盘管理
启动菜单
configfile (hd0,gpt2)/boot/grub/grub.cfg
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=boot
磁盘调整
lvextend -L +1G /dev/vg0/lv1 #扩大分区
qemu-img resize /var/lib/vz/images/201/vm-201-disk-0.qcow2 +10G #web界面可操作
Rescuezilla+GParted