Cane's Blog

Cane

【Geek】阿里云服务器迁移到 PVE

47
2024-11-22

阿里云导出镜像

  1. 实例 - 创建自定义镜像

    1.创建自定义镜像.png

  2. 导出镜像 (PVE 支持的镜像格式很多,建议导出为 Raw 格式

    1.需要开启实例所在地区的 OSS 服务

    2. 镜像导出的时候可以选择压缩硬盘,但是实测会缺失一些数据,原因未知

    2.导出镜像.png

PVE 通过镜像创建虚拟机

  1. 上传镜像压缩包到 PVE

  2. 把镜像解压到 PVE 镜像存储目录,我选择解压成 img 格式

    tar -xzvf /root/cane_m-wz96z3ov498rbs5y7q4h_system.raw.tar.gz -O > /var/lib/vz/template/iso/cane.img
  3. 按照之前的教程,创建 img 格式的虚拟机

    https://hicane.com/archives/geek-bao-mu-ji-pve-zhuang-ji-jiao-cheng-yi-r730xd-wei-li#%E5%AE%89%E8%A3%85-openwrt%EF%BC%88%E5%B8%B8%E8%A7%84-img-%E9%95%9C%E5%83%8F%E5%AE%89%E8%A3%85%EF%BC%89
    # 几个需要注意的点
    # 1. VM ID 不要输错
    # 2. 镜像要是 img 的,路径也不要写错
    # 3. 最后一个参数是存储位置,根据实际情况填写(我的 local-lvm 已经被删除了,所以这里是 local)
    qm importdisk 106 /var/lib/vz/template/iso/cane.img local

启动虚拟机

虚拟机启动后,一般 PVE 会通过 DHCP 功能自动分配 IP,很多小伙伴不知道怎么找这个自动分配的 IP

查找虚拟机 IP 地址

首先,先查找该虚拟机的 MAC 地址,「虚拟机-硬件-网络设备」

查看MAC地址.png

然后使用 nmap 工具扫描内网,获取该 MAC 地址对应的 IP 地址

nmap -sn 192.168.1.0/24  | grep -iB 2 BC:24:11:03:52:4F

扫描MC地址.png

卸载「云初始化」服务,加快开机速度

在我们启动虚拟机后,SSH却连接不上,是因为阿里云主机在启动的时候,要进行「云初始化」流程,在线上的时候,这套流程很快,但是迁移到了线下,因为网络环境不同,这套服务非常慢,一般要等 5-10 分钟 才能启动成功,我们可以通过卸载「云初始化」服务,加快开机速度

  1. 查看开机启动服务

    systemctl list-unit-files --type=service --state=enabled

    开机启动服务.png

  2. 统计服务启动时间

    systemd-analyze blame

    启动时间统计.png

  3. 停用、禁用、删除「云初始化」相关服务

    # 停止服务
    sudo systemctl stop cloud-init-local.service
    sudo systemctl stop cloud-init.service
    sudo systemctl stop cloud-init.target
    sudo systemctl stop cloud-config.service
    sudo systemctl stop cloud-final.service
    
    # 禁用服务开机动启动
    sudo systemctl disable cloud-init-local.service
    sudo systemctl disable cloud-init.service
    sudo systemctl disable cloud-init.target
    sudo systemctl disable cloud-config.service
    sudo systemctl disable cloud-final.service
    
    # 删除服务文件
    sudo rm /lib/systemd/system/cloud-init-local.service
    sudo rm /lib/systemd/system/cloud-init.service
    sudo rm /lib/systemd/system/cloud-init.target
    sudo rm /lib/systemd/system/cloud-config.service
    sudo rm /lib/systemd/system/cloud-final.service
    
    sudo rm /usr/lib/systemd/system/cloud-init-local.service
    sudo rm /usr/lib/systemd/system/cloud-init.service
    sudo rm /usr/lib/systemd/system/cloud-init.target
    sudo rm /usr/lib/systemd/system/cloud-config.service
    sudo rm /usr/lib/systemd/system/cloud-final.service
  • 重启,可以发现开机速度从 5-10 分钟加速到了 10-20 秒

    reboot

nmap 常用命令补充

# 扫描所有 IP (返回MAC地址、IP地址)
nmap -sn 192.168.1.0/24 

# 扫描所有 IP 筛选指定 MAC 地址机子 (MAC 地址可以在「虚拟机-硬件-网络设备」中查看)
nmap -sn 192.168.1.0/24  | grep -iB 2 BC:24:11:03:52:4F

# 扫描所有开启 22 端口的主机
nmap -p 22 --open 192.168.1.0/24

# 扫描指定 IP 开启的所有端口
nmap -p- 192.168.1.186

# 扫描指定 IP 开启的常用端口
nmap 192.168.1.186

# 卸载「云初始化」之前,5-10 分钟的启动时间里,sshd 服务没有启动(22端口)导致 ssh 连接不上
root@ubuntu:~# nmap 192.168.1.186

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-22 07:42 UTC
Nmap scan report for 192.168.1.186
Host is up (0.000057s latency).
Not shown: 999 closed tcp ports (reset)
PORT    STATE SERVICE
111/tcp open  rpcbind
MAC Address: BC:24:11:CB:50:88 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

Linux 服务管理常用命令

# 查看开机自动启动的服务
systemctl list-unit-files --type=service --state=enabled

# 查看服务的启动时间
systemd-analyze blame

# 设置服务开机自动启动(docker 为例)
systemctl enable docker

# 禁用服务开机自动启动(docker 为例)
systemctl disable docker

# 启动服务(docker 为例)
systemctl start docker

# 停止服务(docker 为例)
systemctl stop docker

# 查看服务状态(docker 为例)
systemctl status docker

# 查看服务开机自动启动状态(docker 为例)
systemctl list-unit-files | grep docker