从 Debian 安装 Proxmox VE,并配置网络和双硬盘

驱蚊器喵的插座 · · 147 次点击 · · 开始浏览    

本文记录如果从 Debian 安装 Proxmox VE,以及配置 IPv4 和 IPv6 网卡,为硬盘分区。

预配置

系统装好后,从 NOCIX 后台面板取得 登陆用户名 和 密码。

用户名是 customer
密码是一串随机生成的字符串

使用 su 切换到 root 还需要输入密码,这样频繁操作比较麻烦。

免密登陆 root

安装 sudo 实现免密 su

apt update
apt install -y sudo

修改 /etc/sudoers 文件
注意:只能用 visudo 交互式来修改 sudoers 文件

  1. 这是为了防止被脚本修改,就别想用 echo 来改了
  2. 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

运行 lvsvgs 发现之前的 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 的存储在同一个硬盘上面。

参考:https://pve.proxmox.com/wiki/Logical_Volume_Manager_(LVM)#_creating_an_extra_lv_for_tt_span_class_monospaced_var_lib_vz_span_tt

后续简写说明:
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,即可保存。

这样就算完成了。

运行 lvsvgspvslsblk 结果如下:

[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,不过不影响。

本文来自:驱蚊器喵的插座

感谢作者:驱蚊器喵的插座

查看原文:从 Debian 安装 Proxmox VE,并配置网络和双硬盘

关注本站微信公众号(和以上内容无关)Debiancn ,扫码关注:DebianCN

147 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传