Linux 软件包管理及编译安装
1. Linux 程序包管理器基础及程序包的组成
程序包管理器的作用
- 自动化软件安装、配置、升级、卸载
- 解决依赖关系
- 验证软件包完整性和来源
- 管理软件版本
程序包的组成
程序包通常包含:
├── 二进制程序文件 (/usr/bin/, /usr/sbin/)
├── 库文件 (/usr/lib/, /usr/lib64/)
├── 配置文件 (/etc/)
├── 帮助文档 (/usr/share/doc/)
├── 头文件 (/usr/include/)
├── 数据文件 (/usr/share/)
└── 元数据 (包名、版本、依赖关系等)
2. Rocky 系统下包管理工具
RPM (Red Hat Package Manager)
# 安装软件包
rpm -ivh package.rpm
# 升级软件包
rpm -Uvh package.rpm
# 卸载软件包
rpm -e package-name
# 查询已安装的包
rpm -qa
rpm -q package-name
# 查询包信息
rpm -qi package-name
# 查询包文件列表
rpm -ql package-name
# 查询文件属于哪个包
rpm -qf /path/to/file
YUM (Yellowdog Updater Modified)
# 安装软件包
yum install package-name
# 更新所有软件包
yum update
# 更新指定软件包
yum update package-name
# 卸载软件包
yum remove package-name
# 搜索软件包
yum search keyword
# 显示软件包信息
yum info package-name
# 清理缓存
yum clean all
# 列出已安装的包
yum list installed
# 列出可用的包
yum list available
DNF (Dandified YUM)
# DNF 是 YUM 的下一代版本,语法类似
dnf install package-name
dnf update
dnf remove package-name
dnf search keyword
dnf info package-name
# 查看事务历史
dnf history
# 组操作
dnf group list
dnf group install "Development Tools"
3. Rocky 软件源仓库配置
仓库配置文件位置
/etc/yum.repos.d/
主要配置文件
# 基础仓库配置
/etc/yum.repos.d/rocky.repo
/etc/yum.repos.d/rocky-extras.repo
/etc/yum.repos.d/rocky-devel.repo
仓库配置文件结构
[repository-id] #仓库id,重要信息
name=Repository Name
baseurl=http://mirror.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/ #此url获取时需注意要在含有 Packages/ repodata/ 目录下
enabled=1 #是否启用
gpgcheck=1 #是否检查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial # 检查源
自定义仓库配置
# 创建自定义仓库文件
vi /etc/yum.repos.d/custom.repo
# 示例:添加 EPEL 仓库
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
baseurl=https://download.fedoraproject.org/pub/epel/$releasever/$basearch
enabled=1
仓库管理命令
# 列出所有启用的仓库
yum repolist
# 列出所有仓库(包括禁用的)
yum repolist all
# 启用仓库
yum-config-manager --enable repository-name
# 禁用仓库
yum-config-manager --disable repository-name
# 添加仓库
yum-config-manager --add-repo repository_url
4. Ubuntu 系统下包管理工具
DPKG (Debian Package)
# 安装软件包
dpkg -i package.deb
# 卸载软件包(保留配置文件)
dpkg -r package-name
# 卸载软件包(删除配置文件)
dpkg -P package-name
# 列出已安装的包
dpkg -l
# 查询包信息
dpkg -s package-name
# 列出包的文件
dpkg -L package-name
# 查找文件属于哪个包
dpkg -S /path/to/file
APT (Advanced Package Tool)
# 更新软件包列表
apt update
# 升级所有软件包
apt upgrade
# 完全升级(可能涉及依赖关系变化)
apt full-upgrade
# 安装软件包
apt install package-name
# 卸载软件包(保留配置文件)
apt remove package-name
# 卸载软件包(删除配置文件)
apt purge package-name
# 搜索软件包
apt search keyword
# 显示软件包信息
apt show package-name
# 自动移除不需要的包
apt autoremove
# 清理缓存
apt clean
apt autoclean
APT-GET (传统工具)
# APT-GET 与 APT 功能类似,但 APT 更友好
apt-get update
apt-get upgrade
apt-get install package-name
apt-get remove package-name
其他 APT 工具
# aptitude - 更强大的包管理工具
aptitude install package-name
# synaptic - 图形化包管理器
synaptic
5. Ubuntu 软件源仓库配置
仓库配置文件
/etc/apt/sources.list
/etc/apt/sources.list.d/
主要配置文件结构
# 格式:deb [options] URI distribution component1 component2 ...
deb http://archive.ubuntu.com/ubuntu/ focal main restricted
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted
5.1Ubuntu 软件源仓库配置各列详细含义
第一列:仓库类型
deb # 二进制包仓库 - 包含编译好的可执行程序
deb-src # 源码包仓库 - 包含程序的源代码
第二列:仓库URL和选项
# 基本格式
[选项] 镜像服务器地址
# 实际示例
https://mirrors.aliyun.com/ubuntu/
# 选项示例(可选)
[arch=amd64] # 指定CPU架构
[trusted=yes] # 信任该仓库(跳过验证)
第三列:发行版代号
jammy # Ubuntu 22.04 LTS
focal # Ubuntu 20.04 LTS
bionic # Ubuntu 18.04 LTS
noble # Ubuntu 24.04 LTS
# 更新类型后缀
jammy # 主仓库
jammy-updates # 软件更新
jammy-backports # 新版软件回溯
jammy-security # 安全更新
第四列及以后:软件组件
main # 官方支持的开源软件(Canonical提供支持)
restricted # 官方支持的专有驱动(如显卡驱动)
universe # 社区维护的开源软件(数量最多)
multiverse # 受版权或法律限制的软件
软件源格式说明
deb - 二进制包仓库
deb-src - 源代码包仓库
URI - 仓库地址
distribution - 发行版代号 (如:focal、jammy)
component - 组件 (main、restricted、universe、multiverse)
自定义仓库配置
# 备份原有配置
cp /etc/apt/sources.list /etc/apt/sources.list.backup
# 编辑软件源
vi /etc/apt/sources.list
# 或者添加单独的仓库文件
vi /etc/apt/sources.list.d/custom.list
仓库管理命令
# 更新软件包列表
apt update
# 添加 PPA (Personal Package Archives)
add-apt-repository ppa:user/ppa-name
# 删除 PPA
add-apt-repository --remove ppa:user/ppa-name
# 添加第三方仓库密钥
wget -qO - https://repo.example.com/key.gpg | sudo apt-key add -
# 现代方式添加密钥(Ubuntu 20.04+)
curl -fsSL https://repo.example.com/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/custom-archive-keyring.gpg
6. C/C++ 语言项目源码编译安装三步骤
第一步:配置 (./configure)
# 进入源码目录
cd source-code-directory
# 运行配置脚本
./configure
# 常用配置选项
./configure --prefix=/usr/local # 指定安装目录
./configure --sysconfdir=/etc # 指定配置文件目录
./configure --enable-feature # 启用特定功能
./configure --disable-feature # 禁用特定功能
./configure --with-package=/path # 指定依赖包路径
./configure --without-package # 不使用某个包
第二步:编译 (make)
# 编译源代码
make
# 使用多核编译(加快速度)
make -j4 # 使用4个核心
make -j$(nproc) # 使用所有可用核心
# 编译特定目标
make target-name
# 并行编译
make -j
第三步:安装 (make install)
# 安装到系统
sudo make install
# 指定安装目录(如果配置时已指定prefix,通常不需要)
sudo make install DESTDIR=/custom/path
# 卸载(如果支持)
sudo make uninstall
第四步:设置系统路径 (PATH=¥$PATH)
1. 临时设置(当前终端有效)
# 设置 PATH
export PATH=/usr/local/software/bin:$PATH
# 设置库路径
export LD_LIBRARY_PATH=/usr/local/software/lib:$LD_LIBRARY_PATH
# 设置头文件路径
export C_INCLUDE_PATH=/usr/local/software/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/local/software/include:$CPLUS_INCLUDE_PATH
# 设置 pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/software/lib/pkgconfig:$PKG_CONFIG_PATH
2. 用户级永久设置
编辑 ~/.bashrc 或 ~/.bash_profile 或 ~/.profile:
# 添加到文件末尾
export SOFTWARE_HOME=/usr/local/software
# 可执行文件路径
export PATH=$SOFTWARE_HOME/bin:$PATH
# 动态库路径
export LD_LIBRARY_PATH=$SOFTWARE_HOME/lib:$SOFTWARE_HOME/lib64:$LD_LIBRARY_PATH
# 静态库路径
export LIBRARY_PATH=$SOFTWARE_HOME/lib:$SOFTWARE_HOME/lib64:$LIBRARY_PATH
# 头文件路径
export C_INCLUDE_PATH=$SOFTWARE_HOME/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$SOFTWARE_HOME/include:$CPLUS_INCLUDE_PATH
# pkg-config 路径
export PKG_CONFIG_PATH=$SOFTWARE_HOME/lib/pkgconfig:$PKG_CONFIG_PATH
# Manpage 路径
export MANPATH=$SOFTWARE_HOME/share/man:$MANPATH
tar 命令
命令格式
tar [选项] 文件名 [文件/目录...]
常用选项
主要操作模式
-c: 创建新的归档文件-x: 从归档文件中提取文件-t: 列出归档文件的内容-r: 向归档文件末尾追加文件-u: 更新归档文件(只添加比归档中新的文件)
压缩选项
-z: 使用 gzip 压缩/解压 (.tar.gz 或 .tgz)-j: 使用 bzip2 压缩/解压 (.tar.bz2)-J: 使用 xz 压缩/解压 (.tar.xz)--lzma: 使用 lzma 压缩/解压
其他常用选项
-v: 显示处理过程(详细信息)-f: 指定归档文件名-C: 改变到指定目录-p: 保留文件权限属性--exclude: 排除文件/目录
实用示例
常用命令
做一个压缩包 tar zcvf 压缩包名 目标文件
解压一个压缩包 tar xf 压缩包名 tar xf 压缩包名 -C /其他目录
看看压缩包里面有什么文件 tar -tvf 压缩包名
打包压缩
# 创建 .tar 归档
tar -cvf archive.tar file1 file2 dir1/
# 创建 .tar.gz 压缩包
tar -czvf archive.tar.gz file1 file2 dir1/
# 创建 .tar.bz2 压缩包
tar -cjvf archive.tar.bz2 file1 file2 dir1/
# 创建 .tar.xz 压缩包
tar -cJvf archive.tar.xz file1 file2 dir1/
解压提取
# 解压 .tar 文件
tar -xvf archive.tar
# 解压 .tar.gz 文件
tar -xzvf archive.tar.gz
# 解压 .tar.bz2 文件
tar -xjvf archive.tar.bz2
# 解压到指定目录
tar -xzvf archive.tar.gz -C /target/directory/
查看内容
# 列出归档内容
tar -tf archive.tar
tar -tzvf archive.tar.gz # 详细列表
高级用法
# 向现有归档添加文件
tar -rvf archive.tar newfile.txt
# 排除特定文件
tar -czvf backup.tar.gz --exclude='*.tmp' directory/
# 创建增量备份(需要 -g 选项)
tar -g snapshot -czvf incremental.tar.gz directory/
压缩效率比较
gzip(.gz) : 压缩速度较快,压缩率一般bzip2(.bz2) : 压缩率较好,速度较慢xz(.xz) : 压缩率最高,速度最慢
注意事项
-f选项后面必须紧跟文件名- 选项前的
-可以省略:tar xzvf等同于tar -xzvf - 解压时通常会自动检测压缩格式
- 使用
-v选项可以在处理过程中看到文件列表
这个笔记包含了 tar 命令的常用语法、选项说明和实用示例,格式清晰易读,方便日常查阅使用。
磁盘管理
1. 磁盘使用逻辑
磁盘从识别到可用的完整流程:
- 获取:系统识别物理 / 虚拟磁盘设备(如新增硬盘被系统检测)
- 分区:对磁盘划分逻辑分区(如用
fdisk划分多个分区) - 格式化:为分区创建文件系统(如
mkfs.ext4格式化分区) - 挂载:将分区关联到系统目录(临时挂载或通过
/etc/fstab永久挂载)
2. 常用磁盘管理命令
| 命令 | 功能说明 |
|---|---|
df -h | 查看磁盘分区使用情况(以人类可读单位显示已用 / 可用空间、挂载点) |
du -sh <目录> | 统计指定目录的总大小(-s汇总结果,-h人类可读) |
dd if=<输入源> of=<输出目标> count=<块数> bs=<块大小> | 数据复制 / 备份工具(如dd if=/dev/zero of=/dev/sdb bs=1M count=10生成一个10M的/dev/sdb文件) |
vim /etc/fstab | 编辑开机自动挂载配置文件(定义分区与挂载点的永久映射) |
fdisk -l | 列出系统中所有磁盘及分区详细信息(包括未挂载设备) |
mount <设备路径> <挂载点> | 临时挂载分区(如mount /dev/sda1 /mnt) |
umount <挂载点/设备路径> | 卸载已挂载的分区(如umount /mnt或umount /dev/sda1) |
lsblk | 用于简洁显示所有块设备(如磁盘、分区、U 盘等)的名称、大小、分区结构、文件系统类型及挂载点等信息的命令。 |
blkid | 显示块设备(如分区、U 盘)的 UUID、文件系统类型等标识信息的命令。 |
3. fdisk 分区工具
fdisk是用于磁盘分区的交互式工具,支持 MBR 分区表,常用操作流程:
- 进入分区交互模式:
fdisk /dev/sdX(sdX为目标磁盘,如sda) - 常用交互命令:
n:新建分区(选择主分区 / 扩展分区,指定分区号、起始扇区、大小)d:删除分区(输入分区号删除对应分区)p:显示当前磁盘的分区表信息t:修改分区类型(如设置为 LVM、RAID 等)w:保存分区设置并退出(分区生效)q:放弃修改并退出
4. RAID(磁盘阵列)
-
定位:通过多块磁盘组合实现数据冗余或性能优化的技术
-
常见类型:
- RAID0:条带化存储,无冗余,多盘并行读写(性能最优,单盘故障则数据全丢,至少 2 盘)
- RAID1:镜像存储,数据实时同步到两块盘(冗余最高,空间利用率 50%,至少 2 盘)
- RAID5:通过校验码实现冗余,兼顾性能与可靠性(允许单盘故障,空间利用率
(n-1)/n,至少 3 盘)
5. LVM(逻辑卷管理)
LVM 通过抽象物理磁盘为逻辑卷,实现磁盘空间的动态管理(扩容 / 缩容等),核心组件为 PV(物理卷)、VG(卷组)、LV(逻辑卷)。
常用命令
| 组件 | 命令 | 功能 |
|---|---|---|
| PV(物理卷) | pvcreate <设备> | 将磁盘 / 分区初始化为 LVM 物理卷 |
pvdisplay <PV> | 显示物理卷详细信息 | |
pvs | 简要列出所有物理卷状态 | |
pvremove <PV> | 移除物理卷(需先从 VG 中剥离) | |
| VG(卷组) | vgcreate -s<大小><VG名> <PV1> <PV2>... | 将多个 PV 合并为卷组 -s设置PE大小 |
vgdisplay <VG> | 显示卷组详细信息 | |
vgs44 | 简要列出所有卷组状态 | |
vgextend <VG> <PV> | 扩展卷组(添加新 PV 到 VG) | |
vgreduce <VG> <PV> | 缩减卷组(从 VG 中移除 PV) | |
| LV(逻辑卷) | lvcreate -L <大小> -n <LV名> <VG> | 从 VG 中创建指定大小的逻辑卷 |
lvdisplay <LV> | 显示逻辑卷详细信息 | |
lvs | 简要列出所有逻辑卷状态 | |
lvextend -L +<大小> <LV路径> | 扩展逻辑卷(需 VG 有空闲空间) | |
lvreduce -L -<大小> <LV路径> | 缩减逻辑卷(需先卸载并检查文件系统) | |
lvscan | 扫描并显示系统中所有逻辑卷注 |
LVM 逻辑卷(LV)扩容与缩容全流程笔记
核心前提
LVM(逻辑卷管理)的灵活性体现在可动态调整逻辑卷(LV)大小,但操作需遵循 “先处理文件系统,再调整逻辑卷” 的原则(扩容可在线,缩容需离线),且依赖卷组(VG)有足够空间(扩容)或逻辑卷有未使用空间(缩容)。
一、逻辑卷(LV)扩容流程
适用场景
- 当 LV 空间不足,需扩大其容量(如
/home分区满了)。 - 支持在线扩容(无需卸载 LV,部分文件系统如 ext4、xfs 支持)。
前提检查
-
查看 LV 当前信息(路径、大小、所属 VG):
lvs # 简要查看所有LV lvdisplay /dev/[VG名]/[LV名] # 详细查看目标LV(如/dev/myvg/mylv) -
检查所属 VG 的剩余空间(确保有足够空间扩容):
vgs # 查看VG的总大小、已用、剩余(Free PE / Size) vgdisplay [VG名] # 详细查看VG的空闲空间
扩容步骤(分两种情况)
情况 1:VG 有足够空闲空间(直接扩容 LV)
-
扩展 LV 的容量
命令格式:
lvextend -L +[扩容大小] /dev/[VG名]/[LV名]示例(给
/dev/myvg/mylv增加 10GB):lvextend -L +10G /dev/myvg/mylv # 也可直接指定最终大小(如总大小改为20GB):lvextend -L 20G /dev/myvg/mylv -
扩展文件系统(关键!否则扩容后空间不生效)
需根据 LV 的文件系统类型执行对应命令:
-
ext4/ext3 文件系统:用
resize2fs(支持在线扩容)
resize2fs /dev/myvg/mylv # 自动扩展至LV最大容量 -
xfs 文件系统:用
xfs_growfs(需指定挂载点,支持在线扩容)
xfs_growfs /mnt/mylv # /mnt/mylv是LV的挂载点
-
情况 2:VG 空间不足(需先扩展 VG)
-
新增物理卷(PV):将新磁盘 / 分区初始化为 PV(如
/dev/sdb)pvcreate /dev/sdb -
扩展 VG:将新 PV 添加到目标 VG(如
myvg)vgextend myvg /dev/sdb -
重复 “情况 1” 的步骤:扩展 LV → 扩展文件系统
二、逻辑卷(LV)缩容流程
适用场景
- 当 LV 空间过剩,需缩小容量(释放空间给 VG 供其他 LV 使用)。
- 必须离线操作(需卸载 LV,且部分文件系统不支持缩容,如 xfs)。
前提检查
-
确认 LV 的文件系统类型(xfs 不支持缩容,仅 ext4/ext3 支持):
df -T /dev/[VG名]/[LV名] # 查看文件系统类型 -
检查 LV 内数据占用(确保缩容后空间 ≥ 数据大小,避免数据丢失):
du -sh /mnt/mylv # 查看LV挂载点的总数据量
缩容步骤(严格按顺序执行)
-
卸载 LV(必须离线,否则无法缩容):
umount /mnt/mylv # /mnt/mylv是LV的挂载点 -
检查文件系统完整性(避免缩容时损坏数据):
e2fsck -f /dev/myvg/mylv # 仅ext4/ext3,-f强制检查 -
缩小文件系统(先于 LV 缩容,否则数据会被截断):
命令格式:
resize2fs /dev/[VG名]/[LV名] [目标大小]示例(将文件系统缩容至 5GB):
resize2fs /dev/myvg/mylv 5G -
缩小 LV 的容量
命令格式:
lvreduce -L [目标大小] /dev/[VG名]/[LV名]示例(将 LV 缩容至 5GB,需与文件系统目标大小一致)
lvreduce -L 5G /dev/myvg/mylv # 也可减少指定大小:lvreduce -L -3G /dev/myvg/mylv(减少至3GB)(执行时会提示风险,输入`y`确认) -
重新挂载 LV:
mount /dev/myvg/mylv /mnt/mylv
6.(可选)缩小 VG(若需将释放的 PV 从 VG 中移除):
# 先确认VG中待移除的PV(需确保PV上无数据)
pvs # 查看PV的使用情况(是否为"free")
vgreduce myvg /dev/sdb # 从VG中移除PV(如/dev/sdb)
pvremove /dev/sdb # 彻底删除PV(可选)
三、关键注意事项
-
数据备份:缩容风险高,操作前务必备份 LV 内数据(如
rsync或tar)。 -
文件系统限制:
- xfs 仅支持扩容,不支持缩容;
- ext4/ext3 支持扩容和缩容,但缩容需离线。
-
顺序不可颠倒:
- 扩容:先扩 LV → 再扩文件系统;
- 缩容:先缩文件系统 → 再缩 LV(否则直接损坏数据)。
-
空间匹配:LV 的大小需与文件系统大小一致(扩容可自动对齐,缩容需手动指定相同大小)。
lvm快照
一、快照的基本概念
LVM 快照是对逻辑卷(LV)在某一时刻的即时副本,基于写时复制(Copy-On-Write, COW) 机制实现:
- 初始创建时,快照不复制原始 LV 的全部数据,仅占用少量空间(记录元数据)。
- 快照依赖原始 LV 存在,若原始 LV 损坏,快照也会失效。
- 快照并不会保存LV内所有内容,实时保存发生改变的内容的原文件,未发生改变的内容不会进行保存。
- 在建立快照时需要预测即将发生改变的文件的大小以建立合适容量快照避免资源浪费或快照内存不足。
二、快照的创建步骤
前提条件
- 目标逻辑卷(原始 LV)已存在(如
/dev/myvg/mylv)。 - 原始 LV 所属的卷组(VG)有足够空闲空间(快照大小需根据原始 LV 的预期修改量估算,修改频繁则需更大空间)。
创建命令
使用lvcreate命令,核心参数:
-s:指定创建快照(snapshot)。-L <大小>:指定快照的容量(如5G,需小于 VG 空闲空间)。-n <快照名>:指定快照的名称(如snap_mylv)。-p r表示该卷只读,安全的保证。
示例:为/dev/myvg/mylv创建一个 5GB 的快照,命名为snap_mylv
# 查看VG空闲空间(确认有足够空间)
vgs
# 创建快照
lvcreate -s -L 5G -n snap_mylv -p r /dev/myvg/mylv
# 查看快照信息(快照会显示为"VgName-LvName"的逻辑卷)
lvs # 或 lvdisplay /dev/myvg/snap_mylv
三、快照的使用方法
1. 挂载快照(查看 / 复制数据)
快照默认是只读的(防止意外修改快照数据),可直接挂载到目录查看原始 LV 在快照创建时刻的状态:
# 创建挂载点
mkdir /mnt/snap_mylv
# 挂载快照(只读,无需指定-ro,默认只读)
mount /dev/myvg/snap_mylv /mnt/snap_mylv
# 查看快照中的数据(与原始LV创建快照时的状态一致)
ls /mnt/snap_mylv
# 复制数据到备份目录(如备份到/external_backup)
cp -r /mnt/snap_mylv/* /external_backup/
# 卸载快照
umount /mnt/snap_mylv
2. 可写快照(可选)
若需在快照中进行修改测试,可创建可写快照(通过-c参数或挂载时指定-o rw,不同系统可能有差异)
# 创建可写快照(部分LVM版本支持,需确认)
lvcreate -s -L 5G -n snap_mylv_rw -c 4M /dev/myvg/mylv # -c指定条带大小
# 挂载为可写(需明确指定rw选项)
mount -o rw /dev/myvg/snap_mylv_rw /mnt/snap_rw
# 在快照中进行测试操作(如修改文件)
echo "test" > /mnt/snap_rw/test.txt
# 测试完成后卸载
umount /mnt/snap_rw
四、还原快照
先取消挂载,然后恢复,最后挂载测试
#取消挂载
umount /dev/myvg/mylv
umount /mnt/snap_mylv
#从快照中恢复数据
lvconvert --merge /dev/myvg/snap_mylv
#挂载测试
mount /dev/myvg/mylv /mnt/mylv
五、快照的删除(释放空间)
快照不再需要时,需手动删除以释放卷组空间:
# 确保快照已卸载(若已挂载)
umount /mnt/snap_mylv # 若挂载过
# 删除快照
lvremove /dev/myvg/snap_mylv
# 确认删除(输入y确认)
Do you really want to remove and DISCARD active logical volume myvg/snap_mylv? [y/n]: y
五、关键注意事项
-
快照大小需合理:
快照容量需能容纳原始 LV 在快照生命周期内的修改数据量。若原始 LV 修改数据超过快照容量,快照会立即失效(invalid),无法再使用。
- 估算方法:若原始 LV 每天修改 1GB 数据,计划快照保留 3 天,则快照大小建议≥3GB(预留冗余)。
-
快照并非永久备份:
快照依赖原始 LV,若原始 LV 损坏(如磁盘故障),快照也会失效。因此,快照需配合 “复制数据到外部存储” 使用,仅作为临时备份介质。
-
及时清理过期快照:
快照会占用 VG 空间,长期不使用的快照应及时删除,避免 VG 空间耗尽。
-
文件系统兼容性:
快照的文件系统需与原始 LV 一致(如原始 LV 是 ext4,快照也是 ext4),挂载时需遵循文件系统的挂载规则。
3199

被折叠的 条评论
为什么被折叠?



