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访问

pve-doc参考文档

申请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

微客文档

api文档

磁盘管理

启动菜单

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