本文记录如果从 Debian 安装 Proxmox VE,以及配置 IPv4 和 IPv6 网卡,为硬盘分区。
预配置
系统装好后,从 NOCIX 后台面板取得 登陆用户名 和 密码。
用户名是 customer
密码是一串随机生成的字符串
使用 su
切换到 root 还需要输入密码,这样频繁操作比较麻烦。
免密登陆 root
安装 sudo
实现免密 su
apt update apt install -y sudo
修改 /etc/sudoers
文件
注意:只能用 visudo
交互式来修改 sudoers
文件
- 这是为了防止被脚本修改,就别想用 echo 来改了
visudo
会验证配置的格式,如果不验证,而你写的配置有问题,那么你无法切换到 root,而只有 root 用户才能修改 sudoer(嘛,死循环了
在文件最后加上一行
username ALL=(ALL:ALL) NOPASSWD:ALL
username 是你当前的用户,你想从哪个用户免密切换到 root
在我这里是这样,
customer ALL=(ALL:ALL) NOPASSWD:ALL
visudo
命令使用的是 nano
编辑器
所以修改好了后,ctrl+x,y,回车
回到 customer 用户, sudo su
,可以免密进入 root ,说明配置好了
开启 bbr
因为内核版本在 4.9 以上,可以直接开启 bbr。
修改系统参数
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
使用命令sysctl -p
应用更改。使用命令 lsmod | grep bbr
验证是否成功开启,如果返回信息如下,说明已经开启:
tcp_bbr 20480 15
安装一些常用工具(可选)
apt install -y htop speedtest-cli vim
安装 Proxmox VE
参考官方 wiki:https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Stretch
直接从 【 Install Proxmox VE Install 】 这部分开始
复制以下到终端执行
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg apt -y update && apt -y dist-upgrade apt install -y proxmox-ve postfix open-iscsi apt remove os-prober
安装好了后,使用浏览器访问 https://IP-ADDR:8006
,访问会提示证书不被信任,这是正常的,因为是主机自签名的证书。
我习惯把视图调整为目录视图。
左上角有个下拉框,Folder View.
这里系统是安装完了,但是还需要一些配置.
设置网络
Datacenter - Nodes - node
System - Network
现在服务器是通过具体的硬件网卡来获取 IP 地址接入互联网。
如图:
但是我们需要新建一个桥接网卡,VM 会通过这个桥接网卡来配置 IP 地址,类比桌面环境下用 VMWare 开虚拟机,通过桥接上网之类的。
这里需要先删掉 Network Device 上面的 IP 地址,因为 IP 地址不能同时分配到两张网卡上,所以记下你的 IP 地址和网关,当然,你的服务器后台也应该有这些。
那么,问题来了,删掉后,IP 地址没有配置到网卡上,我们是不是无法访问到这台服务器了呢?会立即断网吗?
放心,网卡配置需要重启才能生效,所以你只需要确保重启前正确配置了网卡。
新建一个 vmbr0.
Create - Linux Bridge 桥接网卡
将 IP 地址配置到桥接网卡上,桥接网卡指向 物理网卡
如果有 IPv6 地址也可以加上。
IPv6 也不是完全没卵用,我们可以用 cf 中转,搞点网站什么的还是可以,就不用再配置一套内网了。
Cloudflare support IPv6 addresses to your origin server, and will accept both IPv4 and IPv6 from clients. via: https://serverfault.com/questions/874387/ipv6-only-server-through-cloudflare-gateway
经测试,Cloudflare Spectrum 也可以配置 IPv6 的源站地址,然后 ssh 连接是 IPv4,同样可以中转。
最后如图,点击 “Create” 保存。
图片下方的 +++ — 是网卡配置文件(/etc/network/interfaces)的 diff。
重启来使更改生效。
重启后,可以正常通过 IPv4 的地址来 ssh,不过 curl ip.sb
返回的是 IPv6 的地址。
硬盘
在开始创建 VM 前,还需要配置一下存储。
服务器硬盘配置
- SSD:
/dev/sda
240G - HDD:
/dev/sdb
3T
默认安装出来是,VM 需要的系统镜像文件存放目录 /var/lib/vz
在 SSD 里面,这样有点浪费,因为镜像不是经常需要读取的.
SSD 这块硬盘的分区,因为不是直接安装的 Proxmox ,调整分区大小有风险,先保持现状吧.
HDD 的话,我打算 100G 作为镜像存放(完全够了吧),剩下的作为 VM 的存储。
[email protected]:/home/customer# lvs LV VG Attr LSize Pool Origin Data% Meta% M ove Log Cpy%Sync Convert base-9000-disk-0 hdd Vri---tz-k 20.00g vm-data vm-100-disk-0 hdd Vwi---tz-- 200.00g vm-data vm-101-cloudinit hdd Vwi---tz-- 4.00m vm-data vm-101-disk-0 hdd Vwi---tz-- 100.00g vm-data vm-102-cloudinit hdd Vwi---tz-- 4.00m vm-data vm-102-disk-0 hdd Vwi---tz-- 100.00g vm-data vm-9000-cloudinit hdd Vwi---tz-- 4.00m vm-data vm-data hdd twi---tz-- 2.60t vz hdd twi---tz-- 100.00g root s163941-vg -wi-ao---- 199.34g swap_1 s163941-vg -wi-ao---- 23.99g [email protected]:/home/customer# vgs VG #PV #LV #SN Attr VSize VFree hdd 1 9 0 wz--n- 2.73t 31.84g s163941-vg 1 2 0 wz--n- 223.33g 0
运行 lvs
和 vgs
发现之前的 VM 硬盘 还在,fdisk
格式化一下
看来 nocix 后台的 wipe hard disk
没起作用
fdisk /dev/sdb
m 可以查看帮助菜单
输入 p 回车,d 回车,w 回车
命令说明:
p 打印分区
d 删除分区
w 写入更改
过程如下:
Command (m for help): p Disk /dev/sdb: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: FD775806-E159-461E-9BF0-320C987B0796 Device Start End Sectors Size Type /dev/sdb1 2048 5860533134 5860531087 2.7T Linux filesystem Command (m for help): d Selected partition 1 Partition 1 has been deleted. Command (m for help): p Disk /dev/sdb: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: FD775806-E159-461E-9BF0-320C987B0796 Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
创建 volumn group
参考官方 wiki:https://pve.proxmox.com/wiki/Logical_Volume_Manager_(LVM)#_creating_a_volume_group
第二块硬盘的 volumn group 名字叫 hdd。
[email protected]:/home/customer# sgdisk -N 1 /dev/sdb The operation has completed successfully. [email protected]:/home/customer# pvcreate --metadatasize 250k -y -ff /dev/sdb1 Physical volume "/dev/sdb1" successfully created. [email protected]:/home/customer# vgcreate hdd /dev/sdb1 Volume group "hdd" successfully created
这是之前那台独服的配置
[email protected]:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 543.9G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 256M 0 part └─sda3 8:3 0 543.7G 0 part ├─pve-swap 253:0 0 8G 0 lvm [SWAP] ├─pve-root 253:1 0 96G 0 lvm / ├─pve-data_tmeta 253:2 0 4.2G 0 lvm │ └─pve-data-tpool 253:4 0 415.2G 0 lvm │ ├─pve-data 253:5 0 415.2G 0 lvm │ ├─pve-vm--100--disk--0 253:6 0 100G 0 lvm │ ├─pve-vm--102--disk--1 253:7 0 30G 0 lvm │ ├─pve-vm--103--disk--1 253:8 0 30G 0 lvm │ ├─pve-vm--101--disk--0 253:9 0 50G 0 lvm │ └─pve-vm--104--disk--0 253:10 0 32G 0 lvm └─pve-data_tdata 253:3 0 415.2G 0 lvm └─pve-data-tpool 253:4 0 415.2G 0 lvm ├─pve-data 253:5 0 415.2G 0 lvm ├─pve-vm--100--disk--0 253:6 0 100G 0 lvm ├─pve-vm--102--disk--1 253:7 0 30G 0 lvm ├─pve-vm--103--disk--1 253:8 0 30G 0 lvm ├─pve-vm--101--disk--0 253:9 0 50G 0 lvm └─pve-vm--104--disk--0 253:10 0 32G 0 lvm sr0 11:0 1 1024M 0 rom
我想要配置成这样,镜像存储和 VM 的存储在同一个硬盘上面。
后续简写说明:
vg -> volumn group
lv -> logic volumn
创建镜像文件存储
在 hdd 的 vg 里面创建 100G 大小的 lv,lv 名叫 vz.
lvcreate -L 100G -n vz hdd
转换为 thin-pool
lvconvert --type thin-pool hdd/vz
过程如下:
[email protected]:/home/customer# lvcreate -L 100G -n vz hdd WARNING: ext4 signature detected on /dev/hdd/vz at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/hdd/vz. Logical volume "vz" created. [email protected]:/home/customer# lvconvert --type thin-pool hdd/vz WARNING: Converting logical volume hdd/vz to thin pool's data volume with metadata wiping. THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.) Do you really want to convert hdd/vz? [y/n]: y Converted hdd/vz to thin pool.
格式化 vz 分区为 ext4
mkfs.ext4 -m 0 /dev/hdd/vz
将 vz 分区挂载到 /var/lib/vz
,因为/var/lib/vz
目录存在且非空,所以需要删掉。
先看看这个的目录结构:
|-- dump |-- images |-- private |-- snippets `-- template |-- cache |-- iso `-- qemu
通过 /etc/fstab
来挂载,避免重启后配置丢失。
实测,删除前不用备份这个目录,因为挂载后,目录结构会回来的。
命令如下
rm -r /var/lib/vz echo '/dev/hdd/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab cat /etc/fstab mount -a
最后一个命令执行完成没有任何回显,说明成功了。
通过 df -h
验证:
[email protected]:~/vz.bak# df -h Filesystem Size Used Avail Use% Mounted on udev 12G 0 12G 0% /dev tmpfs 2.4G 9.1M 2.4G 1% /run /dev/mapper/s163941--vg-root 196G 1.9G 184G 2% / tmpfs 12G 46M 12G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 12G 0 12G 0% /sys/fs/cgroup /dev/sda1 236M 82M 142M 37% /boot /dev/fuse 30M 16K 30M 1% /etc/pve tmpfs 2.4G 0 2.4G 0% /run/user/1000 /dev/mapper/hdd-vz 98G 61M 93G 1% /var/lib/vz
最后一行,可以看到已经挂载好了,size 因为计算的问题,和 100G 有些许出入
剩下的是 VM 的存储分区。
创建 VM 存储分区
需要确定我们配置的存储类型,因为时间有限,之前那台独服用的是 LVM-Thin,新的这台也考虑使用 LVM-Thin,还有一种是 LVM。
LVM 和 LVM-Thin 的区别如下:
参考:https://pve.proxmox.com/wiki/LVM2#LVM_vs_LVM-Thin
TypeContent typesImage formatsSharedSnapshotsClonesLVMimages,rootdirrawpossiblenonoLVM-Thinimages,rootdirrawnoyesyes
可以看到,LVM-Thin 支持快照和克隆,但是不能共享了,没事,我不需要共享给别的节点,我没用集群。
但是添加 LVM 和 添加 LVM-Thin 的步骤都记录下。
如果是添加 LVM
如果是要添加 LVM,只需要到 Datacenter - Storage
点击 Add:LVM
Base storage: Existing volumn groups Volumn group: hdd ID: 随便取名
这样添加后,容量是 hdd 的容量, 2.73T , 但是会显示已经占用了 100G。
Usage 3.59% (100.20 GiB of 2.73 TiB)
如果是添加 LVM-Thin
添加 LVM-Thin 会相对有点麻烦。
需要指定容量,末尾还要留点容量,因为 convert 到 thin-pool 后需要占用少量空间来存放一些元数据 metadata,2 MB,但这个容量不会从你创建的 lv 中去获取,所以这个容量要留有,分区不能全部划完。
[email protected]:/var/lib/vz/template/iso# vgs VG #PV #LV #SN Attr VSize VFree hdd 1 1 0 wz--n- 2.73t 2.63t s163941-vg 1 2 0 wz--n- 223.33g 0
vgs
看到剩余容量是 2.63T,我也指定 2.63T,实际上也留有一部分小数.
从名为 hdd 的 vg 中创建大小为 2.63T,名字叫 vm-data 的 lv.
lvcreate -L 2.63T -n vm-data hdd
将 hdd 中的 vm-data 转换的 thin-pool
lvconvert --type thin-pool hdd/vm-data
上述命令的过程如下:
[email protected]:/var/lib/vz/template/iso# lvcreate -L 2.63T -n vm-data hdd Rounding up size to full physical extent 2.63 TiB WARNING: ext4 signature detected on /dev/hdd/vm-data at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/hdd/vm-data. Logical volume "vm-data" created. [email protected]:/var/lib/vz/template/iso# lvconvert --type thin-pool hdd/vm-data WARNING: Converting logical volume hdd/vm-data to thin pool's data volume with metadata wiping. THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.) Do you really want to convert hdd/vm-data? [y/n]: y WARNING: Pool zeroing and large 2.00 MiB chunk size slows down provisioning. Converted hdd/vm-data to thin pool.
然后到面板,Datacenter - Storage
点击 Add:LVM-Thin
如图配置
点击 Add
,即可保存。
这样就算完成了。
运行 lvs
,vgs
,pvs
,lsblk
结果如下:
[email protected]:/home/customer# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert vm-data hdd twi-aotz-- 2.63t 0.21 10.51 vz hdd twi-aotz-- 100.00g 0.00 10.43 root s163941-vg -wi-ao---- 199.34g swap_1 s163941-vg -wi-ao---- 23.99g [email protected]:/home/customer# vgs VG #PV #LV #SN Attr VSize VFree hdd 1 4 0 wz--n- 2.73t 1.11g s163941-vg 1 2 0 wz--n- 223.33g 0 [email protected]:/home/customer# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 223.6G 0 disk |-sda1 8:1 1 243M 0 part /boot |-sda2 8:2 1 1K 0 part `-sda5 8:5 1 223.3G 0 part |-s163941--vg-root 253:0 0 199.3G 0 lvm / `-s163941--vg-swap_1 253:1 0 24G 0 lvm [SWAP] sdb 8:16 1 2.7T 0 disk `-sdb1 8:17 1 2.7T 0 part |-hdd-vz_tmeta 253:2 0 100M 0 lvm | `-hdd-vz 253:4 0 100G 0 lvm /var/lib/vz |-hdd-vz_tdata 253:3 0 100G 0 lvm | `-hdd-vz 253:4 0 100G 0 lvm /var/lib/vz |-hdd-vm--data_tmeta 253:5 0 88M 0 lvm | `-hdd-vm--data-tpool 253:7 0 2.6T 0 lvm | |-hdd-vm--data 253:8 0 2.6T 0 lvm `-hdd-vm--data_tdata 253:6 0 2.6T 0 lvm `-hdd-vm--data-tpool 253:7 0 2.6T 0 lvm |-hdd-vm--data 253:8 0 2.6T 0 lvm [email protected]:/home/customer# pvs PV VG Fmt Attr PSize PFree /dev/sda5 s163941-vg lvm2 a-- 223.33g 0 /dev/sdb1 hdd lvm2 a-- 2.73t 1.11g
最后没切完,留了 1.11g,不过不影响。