前言
最近在考虑公司生产环境操作系统的迭代问题。目前,公司业务主要跑在CentOS7和8上面,由于CentOS早已停止了7和8的支持,新版的CentOS Stream也从RHEL的下游变成了上游,稳定性得不到保证。所以更换操作系统的想法又一次被提了起来。
方案
针对这次想法,大概有三个方案,分别如下:
方案1:只升级内核
目前网上有CentOS内核的LTS(长期支持)版本,解决了内核的安全问题,这个方案代价最小
方案2:替换为RHEL其他下游版本
包括:Rocky Linux、Oracle Linux或者AlmaLinux ,这些发行版基于RHEL发行,和生产环境理论上兼容性应该比较好,但是需要进行测试
方案3:替换为Debian
由于Debian的包比较新,需要按照线上环境进行兼容测试
总结
如上看来方案1和2代价最小,方案3代价最大。但是从网上看来,很多人都推荐Debian,因为Debian安装后运行时CPU使用率和内存占用率都要比Centos低不少,并且包也挺新,正是因为如此,前期需要做大量的测试工作。 注意:安装完成时候简单操作了一下,流畅度确实要比CentOS快很多,下一步安装生产环境所需的软件进行测试 以下为Debian安装教程,非常详细。 安装过程相对于CenOS来说,步骤大同小异,只是分区要比CentOS繁琐不少
使用iso安装Debian
最新的Debian版本为11.03,可以在https://www.debian.org/distrib/进行下载,建议选择支持LTS的 选择Graphical install :图像化安装
选择语言
选择English
选择时区
选择Hong Kong
键盘布局
默认即可 进行检测
配置网络
Debian在安装时会使用DHCP分配IP,如果局域网内未开启DHCP服务,则会提示你配置网络失败,需要在安装界面进行手动配置,或者安装完成以后在操作系统里进行配置 提示自动配置网络失败,点击下一步 选择选择:Configure network manually 手动配置网络
输入IP地址 输入子网掩码 输入网关 输入DNS
配置主机名
配置解析DNS解析时的主机名
设置root密码
添加普通账户
设置普通账户密码:
硬盘分区
硬盘分区这里相对于Centos来说,操作步骤繁琐不少,没有Centos简单 分区规划:
- 文件系统使用ext4
- 除了boot为标准分区以外,其他分区为LVM
- 分区大小由于是测试环境,不在做规划
先开始创建boot分区,选择Manual 选择Yes 选择需要分区的磁盘,点击Continue 选择Create a new partition ,创建一个新分区 创建boot引导区 设置boot分区大小,1G足够了,如果还嫌大,可以设置为512M 选择分区为Primary :主分区 设置大磁盘大小从开始算还是结束算,选择Beginning Use as :选择文件系统为Ext4 mount point :选择挂载点为/boot typical usage :文件系统inode大小为standard boottable flag :开启引导 最后选择 Done setting up the partition ,完成当前分区工作 创建LVM 选择第三项:Configure the Logical Volume Manager ,配置逻辑卷组(LVM) 选择yes Create volume group 创建卷组 输入卷组名 添加磁盘到卷组,不要选错了,/dev/sda1为我们刚才创建好得boot分区,选下面的/dev/sda free 点击YES 选择Create logical volume 创建逻辑卷 选择刚才创建好的逻辑卷组 输入逻辑卷名称 分配大小,点击Continue 完成创建 按照如上步骤依次完成 home 、swap 、var 等lv的创建,最后点击 Finish partitioning and write changes to disk 点击Display configuration details 查看LVM分区情况,没有错误,点击Finish 完成分区 格式化LVM分区 选择刚才创建好的LVM分区 选择文件系统 选择挂载点 选择文件系统node大小 完成当前分区设置 依次完成剩余分区的初始化工作 全部完成以后点击 Finish partitioning and write changes to disk 最后选择Yes ,点击Continue 进行下一步
校验镜像
选择NO
选择软件包
只勾选最后2个即可
安装boot loader
选择/dev/sda
安装完成
点击Continue 开始安装,安装完成重启即可 如果有不太明白的地方可以参考Debian官方文档:https://www.debian.org/releases/stable/installmanual
设置IP地址
注:如果在安装时配置了网络,这里不用在进行二次设置了 查看网卡名称,ip addr ,ens33为网卡
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:78:b7:09 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.1.190/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe78:b709/64 scope link
valid_lft forever preferred_lft forever
编辑/etc/network/interfaces ,增加如下内容:
allow-hotplug ens33
iface ens33 inet static
address 192.168.1.190/24
gateway 192.168.1.1
dns-nameservers 114.114.114.114
dns-search debian-test
vi /etc/resolv.conf ,增加如下选项
search debian-test
nameserver 114.114.114.114
添加镜像源
把Debian默认的镜像源更换为中科大镜像源 备份现有配置文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vi /etc/apt/sources.list 删除之前的所有配置,添加新源
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
更新索引
apt-get update
安装vim测试一下
root@debian-test:~
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libgpm2 vim-runtime
Suggested packages:
gpm ctags vim-doc vim-scripts
The following NEW packages will be installed:
libgpm2 vim vim-runtime
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 7,756 kB of archives.
After this operation, 36.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.ustc.edu.cn/debian stable/main amd64 libgpm2 amd64 1.20.7-8 [35.6 kB]
Get:2 http://mirrors.ustc.edu.cn/debian stable/main amd64 vim-runtime all 2:8.2.2434-3+deb11u1 [6,226 kB]
Get:3 http://mirrors.ustc.edu.cn/debian stable/main amd64 vim amd64 2:8.2.2434-3+deb11u1 [1,494 kB]
Fetched 7,756 kB in 0s (21.7 MB/s)
使用qcow2镜像进行安装
下载镜像文件
https://www.debian.org/distrib/ 下载镜像文件
上传镜像到虚拟化平台
使用winscp上传镜像到虚拟平台,我这里用的是虚拟化平台为PVE
创建虚拟机
以下命令在PVE宿主机操作
qm create 107 --name debian --ostype l26 --cores 1 --memory 2048 --net0 virtio,bridge=vmbr0,firewall=1, --sockets 1
qm importdisk 107 debian-11-generic-amd64.qcow2 vm --format=qcow2
qm set 107 --scsihw virtio-scsi-pci --scsi0 vm:107/vm-107-disk-0.qcow2
qm set 107 --ide2 vm:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0
qm resize 107 scsi0 +30G
qm set 107 --cipassword test123456
qm set 107 --ipconfig0 ip=dhcp
qm cloudinit dump 107 user
qm template 107
qm clone 107 108 --name debian
qm start 108
初始化
vm开机后cloud-init会对其进行初始化和更新操作,这里需要等待一段时间,初始化完成以后,重启即可
登录
密码登录
如果在创建虚拟机的时候,配置了登录密码,在PVE管理端,打开控制台直接输入用户名和密码即可登录,默认的用户名为debian,如果想使用xshell远程管理,需要在/etc/ssh/sshd_config开启允许使用密码登录即可。登录完成使用sudo su切换为root即可。 官方不推荐使用PAM登录
ssh登录
如果使用ssh-key登录,需要保存/root/.ssh/id_rsa 私钥文件到本地,然后在XSHELL工具–>用户秘钥管理者,导入一下 新建连接,登录用户选择debian即可
配置apt镜像源
使用如下命令替换源为USTC
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt-get update
迁移home分区
Home目录默认在/上,不安全,需要剥离出去。操作步骤如下:
qm stop 107
qm set 107 --scsi1 vm:50,format=qcow2
进行分区、格式化、挂载
fdisk -l
Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
fdisk /dev/sdb
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (1-4, default 1):
First sector (2048-104857599, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-104857599, default 104857599):
Created a new partition 1 of type 'Extended' and of size 50 GiB.
Command (m for help): t
Selected partition 1
Aliases:
linux - 83
swap - 82
extended - 05
uefi - EF
raid - FD
lvm - 8E
linuxex - 85
Hex code or alias (type L to list all): 8e
Changed type of partition 'Extended' to 'Linux LVM'.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks
apt install lvm2
pvcreate /dev/sdb1
vgcreate debian_vg /dev/sdb1
lvcreate -L 49.9G -n lv_home debian_vg
mkfs.ext4 /dev/mapper/debian_vg-lv_home
-rf /home/debian/.ssh/ /
mount /dev/mapper/debian_vg-lv_home /home
echo "/dev/mapper/debian_vg-lv_home /home ext4 defaults,noatime 0 0" >> /etc/fstab
mkdir -p /home/debian
cp -rf /.ssh/ /home/debian/
chown -R debian:debian /home/debian/
qm reboot 107
如果有其他需要添加的分区,请按照添加**硬盘–>分区–>创建pv卷–>创建vg–>创建lv–>创建挂在目录–>挂载,**步骤执行即可
下一步安装生产环境所用的软件即可
参考来源
https://pve.proxmox.com/wiki/Cloud-Init_Support https://pve.proxmox.com/pve-docs/qm.1.html https://ubuntu.com/blog/cloud-init-v-18-2-cli-subcommands https://gist.github.com/chriswayg/b6421dcc69cb3b7e41f2998f1150e1df
|