PVE和LINUX使用日志

安装

1.下载proxmox 6.2镜像,基于dabain 10.5 buster(清华大学镜像站):

https://mirrors.tuna.tsinghua.edu.cn/proxmox/iso/

2.使用rufus软件写入ISO镜像到U盘,使用DD方式写入

默认LVM分区处理

pve删除lvm扩容根目录

先备份虚拟机

删除虚拟机

删除local-lvm:
lvremove pve/data

查看空闲空间:
vgdisplay pve | grep Free

增加分区空间:
lvextend -l +100%FREE -f pve/root

fsdisk -l

执行上边的扩容操作:
resize2fs /dev/mapper/pve-root

恢复已经备份的虚拟机

更改为国内软件源

更改debain apt源

cp /etc/apt/source.list /etc/apt/source.list.bak

cat > /etc/apt/source.list <<EOF

1
2
3
4
5
6
7
8
9
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
EOF

更改pve apt源

cp /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak

cat > /etc/apt/sources.list.d/pve-enterprise.list<<EOF

deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian buster pve-no-subscription EOF

更改pve lxc镜像源

查找设定下载源的文件:
grep -rn "download.proxmox.com" /usr/share/perl5/PVE/*

sed -i.bak "s#http://download.proxmox.com/images#https://mirrors.ustc.edu.cn/proxmox/images#g" /usr/share/perl5/PVE/APLInfo.pm

wget -O /var/lib/pve-manager/apl-info/mirrors.ustc.edu.cn https://mirrors.ustc.edu.cn/proxmox/images/aplinfo.dat

备份系统

tar pczvf ./sysback.tgz --exclude=/lost+found --exclude=/mnt --exclude=/srv --exclude=/proc --exclude=/run --exclude=/tmp --exclude=/sys --exclude=/meida --exclude=/mnt --exclude=/pve-directory /

注意目标目录要在最后,排除目录要在前面

PVE开启直通

打开直通

前提:硬件支持并在UEFI或BIOS里面开启VT-D虚拟化

修改grub文件:
vim /etc/default/grub

1
2
3
4
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
#改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
update-grub

修改module文件
vim /etc/module
加入

1
2
3
4
vfio_iommu_type1
vfio_virqfd
vfio_pci
vfio

重启系统生效

win10设置显卡直通

以下截图是我的win10硬件配置:

下载虚拟化驱动的iso,虚拟机win10的驱动靠它了:
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

列出设备地址,确定显卡vendorID:
lspci -nn

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 610 [8086:5902] (rev 04)

定义为GPU直通vfio设备,并防止VGA仲裁:
echo "options vfio-pci ids=8086:5917 disable_vga" > /etc/modprobe.d/vfio.conf

禁止默认VGA驱动在启动时加载:
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf

echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

启动进入虚拟机即可

参考:https://star.us.org/Cs/win10-installation-and-gpu-passthrough-on-proxmox-6.html?replyTo=25

LXC使用

在配置的存储目录中,点击模板,可以看到里面有很多system模板和turnkey的应用模板,这样可以大大减少应用的部署时间而专注于业务上。

配置模板很简单,最后设置密码后启动即可。如果忘记密码,可以通过PVE主机进入进行修改:
ptc enter 容器ID名

再使用
passwd 用户名修改

ubuntu container ssh的问题:

默认ubuntu不允许root进行ssh,可以新建一个用户,把用户添加到sudoer里面就行:
useradd 用户名 -d -s /bin/bash

使用passwd更改密码

添加用户到sudoer:
vim /etc/sudoer

或者:
visudoer

docker使用

安装docker:
apt install -y docker-ce docker-ce-cli

安装portainer:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

linux磁盘操作

新磁盘分区

分区工具:
目前使用最多的分区工具有fdisk和parted,区别是fdisk只支持mbr分区表,parted支持mbr和GPT分区表,大于2T的磁盘则需使用parted。

工具使用

fdisk:
先选定指定磁盘
fdisk /dev/sdx

按m则列出操作菜单,根据菜单操作新建分区

分区完毕后,w保存退出

使操作生效:保存退出后,fdisk需要运行partprobe生效:
partprobe /dev/sdx

这样,在/dev目录下就会生成一个sdx1的文件,对应就是该磁盘的第x个分区

最后,格式化分区,创建文件系统:
mkfs -t xfs /dev/sdx1

或:
mkfs.xfs /dev/sdx1

parted:

parted的操作与mysql的命令行操作有点相似,而且是即使生效的,不用partprobe。

运行parted后,按”?”可以跳出操作菜单,先选择要操作的设备:
select /dev/sdx

然后就可以根据菜单进行分区表类型选择和分区了

创建完毕后别忘了格式化分区来创建文件系统。

磁盘或分区的克隆

有时候遇到磁盘的smart报警,这时候需要更换磁盘了,如何克隆?
这时候使用dd命令就可以:
dd if=/dev/sdb of=/dev/sdc

这样就相当于把sdb的磁盘克隆到sdc,再重新挂载就行。这个操作会把磁盘的所有信息(包括分区表)都克隆。也可以使用dd命令进行分区表的备份哦。

磁盘克隆后的扩容

克隆磁盘后,如果目标磁盘比原磁盘大,则有部分空间是没有分配的,这时需要手动扩容

这里使用sata磁盘dd命令克隆到nvme的磁盘,执行:
parted /dev/nvme0n1 print free

跟直接进入parted操作是一样的

显示信息:

1
2
3
4
5
Number  Start   End     Size    File system  Name Flags
1 17.4kB 1049kB 1031kB bios_grub
2 1049kB 538MB 537MB fat32 boot, esp
3 538MB 240GB 240GB lvm
4 240GB 256GB 16.0GB Free Space

可以看到有16G是为分配的空闲空间,因为3号分区是lvm分区,执行如下命令:
parted /dev/nvme0n1 resizepart 3 100%

把剩余的空间分配给3号分区,重新执行:parted /dev/nvme0n1 print free

可以看到已经划给3号分区

分区的空间修改了,也要刷新一下pv物理卷的大小,这样pv才能识别变动的空间:
pvresize /dev/nvme0n1p3

然后执行pvdisplay查看pv中free 项中是否显示了可用的空间

1
2
3
4
5
6
7
8
9
10
--- Physical volume ---
PV Name /dev/nvme0n1p3
VG Name pve
PV Size 237.97 GiB / not usable 696.50 KiB
Allocatable yes
PE Size 4.00 MiB
Total PE 60921
Free PE 3816
Allocated PE 57105
PV UUID C67jhF-xR8t-m7JY-RwcD-orbo-CSIc-E8tWIu

可以看到有3816可以分配,然后执行:
lvextend -l +100%FREE pve/root

Size of logical volume pve/root changed from <215.07 GiB (55057 extents) to 229.97 GiB (58873 extents).
Logical volume pve/root successfully resized.

其中pve/root是逻辑卷的目录,可以通过lvdisplay命令查看
最后执行手动扩展命令使文件系统生效,未扩展前使用df -hT查看/dev/mapper/pve-root大小:

1
2
3
4
5
6
7
8
9
Filesystem           Type      Size  Used Avail Use% Mounted on
udev devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 1.6G 3.0M 1.6G 1% /run
/dev/mapper/pve-root ext4 212G 106G 97G 53% /
tmpfs tmpfs 7.8G 28M 7.8G 1% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p2 vfat 511M 328K 511M 1% /boot/efi
/dev/sda1 ext4 916G 169G 702G 20% /srv/disk-wdc
/dev/fuse fuse 128M 20K 128M 1% /etc/pve

使用ext4格式文件系统,就通过resize2fs /dev/mapper/pve-root进行手动生效:

resize2fs 1.46.2 (28-Feb-2021)
Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required
old_desc_blocks = 27, new_desc_blocks = 29
The filesystem on /dev/mapper/pve-root is now 60285952 (4k) blocks long.

再次运行df -hT查看是否生效:

1
2
3
4
5
6
7
8
9
Filesystem           Type      Size  Used Avail Use% Mounted on
udev devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 1.6G 3.0M 1.6G 1% /run
/dev/mapper/pve-root ext4 227G 106G 111G 49% /
tmpfs tmpfs 7.8G 28M 7.8G 1% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p2 vfat 511M 328K 511M 1% /boot/efi
/dev/sda1 ext4 916G 169G 702G 20% /srv/disk-wdc
/dev/fuse fuse 128M 20K 128M 1% /etc/pve

可以看到分区已经由212G扩展到227G,与上面print free的空间一致,说明扩展成功

另外如果是xfs格式的文件系统,可以使用xfs_growfs命令执行手动生效。

xfs根目录在线扩容

从虚拟机上面增加磁盘容量后,不会马上应用到分区,需要手动设置
查看空闲空间容量:
parted /dev/sda

(parted) print free

显示信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Model: NUTANIX VDISK (scsi)
Disk /dev/sda: 644GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system 标志
32.3kB 1049kB 1016kB Free Space
1 1049kB 3146kB 2097kB primary
2 3146kB 213MB 210MB primary xfs 启动
3 213MB 8803MB 8590MB primary linux-swap(v1)
4 8803MB 537GB 528GB extended
5 8804MB 537GB 528GB logical xfs
537GB 644GB 107GB Free Space

可以看到这里增加了107G

按q退出

安装软件:
yum install cloud-utils-growpart

growpart /dev/sda 5

如果有报错:

unexpected output in sfdisk —version [sfdisk,来自 util-linux 2.23.2]

则输入:
export LANG=en_US.UTF-8

重新运行:
growpart /dev/sda 5

CHANGED: partition=5 start=17195008 old: size=1031380992 end=1048576000 new: size=1241096159 end=1258291167

使用xfs_growfs命令扩容
xfs_growfs /dev/sda5

看到输出信息:

1
2
3
4
5
6
7
8
9
10
meta-data=/dev/sda5              isize=512    agcount=4, agsize=32230656 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=128922624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=62950, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 128922624 to 155137019

输入df -hT可以查看已经扩容

分享到