# 系统管理篇(2)- 磁盘管理
# 一、磁盘使用监控
# 1. 查看命令
-
fdisk
既可以查询磁盘信息,又可以进行磁盘分区;
磁盘设备是块设备,不要去修改其权限;
自行学习
parted命令。fdisk -l
fdisk -l /dev/sd? # 查看磁盘
fdisk -l /dev/sd?? # 查看分区
-
df
df -Th
-
du
文件实际占用的空间
# 两个查看文件大小的区别ls -lh /etc/passwd # 包含了空洞文件的大小
du -h /etc/passwd # 文件实际大小
# 实验:dd if=/dev/zero bs=4M count=10 of=afile
ls -lh afile
du -h afile
# 都是 40M# 创建空洞文件dd if=/dev/zero bs=4M count=10 seek=10 of=bfile
ls -lh bfile # 说明了什么?ls 测量的是包含了空洞的文件大小
du -h bfile # 说明了什么?du 测量的是文件有数据的实际大小
# 二、文件系统
# 1. 文件系统类型
Linux ⽀持多种⽂件系统,常⻅的有
- ext4
- xfs
- NTFS
- 需要安装额外软件
# 2. 深入 Linux 文件
ext4 文件系统基本结构比较复杂
-
超级块
- 文件系统最前面部分 - 分区中有多少文件
-
超级块副本
- 超级块的副本 - 用于恢复
-
i 节点
- 记录每个文件元数据信息 - 文件名,大小,编号,权限
- 文件名记录在文件的父目录的 i 节点中
-
数据块
- 文件对应的真正数据 - 普通文件就其存放的数据;目录就是去其中存放的 i 节点信息
- 链式存储
ext4 ⽂件系统深⼊理解
-
执⾏ mkdir 、touch、 vi 等命令后的内部操作
-
符号链接与硬链接
ls -l
ls -i # 查看到 i 节点编号
touch afilels -li afile # 大小 0 代表什么?
du -h afile
echo 123 > afile
ls -li afile
du -h afile # 大小代表什么?
cp afile afile2ls -li afile* # 观察 i 节点编号,代表什么?
mv afile2 afile3ls -li afile* # 观察 i 节点编号,代表什么?
vi afile4 # 写入内容,保存退出
ls -li afile4
vi afile4 # 修改
ls -li afile4 # 观察 i 节点编号,代表什么?
rm afile4# i 节点和文件名断开ln afile bfilels -li afile bfile # 观察 i 节点编号
# 硬链接不能跨越分区ln -s afile aafile
ls -li afile aafile # 观察 i 节点编号,文件权限
# 软链接能跨越分区
# 三、磁盘管理
# 1. 磁盘分区
-
常用命令
- fdisk
# 在虚拟机中添加磁盘fdisk -l # 查看新加磁盘
fdisk /dev/sdb # 以具体磁盘为准
# 交互式命令m # 帮助n # 新建p # 主分区1 # 分区
回车 # 开始扇区+5G # 结束扇区,如果占用剩余所有,直接敲回车p # 查看分区d # 删除分区q # 不保存退出w # 保存退出- mkfs
mkfs.
mkfs.xfs /dev/sdb1 # 以具体磁盘分区为准- parted
- 磁盘大于 2T
# 2. 挂载
-
常用命令
- mount
mkdir /mnt/testmount -t xfs /dev/sdb1 /mnt/test
mount -
配置文件
- /etc/fstab
vi /etcfstab/dev/sdb1 /mnt/test xfs defaults 0 0
分区 挂载点 文件系统类型 权限 备份 自检
# 3. 磁盘配额
xfs 文件系统的用户磁盘配额 quota
mkfs.xfs /etc/sdb1 | |
mkdir /mnt/disk1 | |
mount -o uquota,gquota /dev/sdb1 /mnt/disk1 | |
chmod 1777 /mnt/disk1 # 特殊权限,1 代表粘性位,作用是只有创建者和 root 可以删除 | |
xfs_quota -x -c 'report -ugibh' /mnt/disk1 # i-inode b-block h - 人性化显示 | |
xfs_quota -x -c 'limit -u isoft=5 ihard=10 用户名' /mnt/disk1 |
- soft 软限制:超过软限制只警告,给予一个宽限时间,宽限时间内不影响使用
- hard 硬限制:绝对不能超过配额
# 四、RAID
# 1. RAID 基本概念
RAID 的常见级别及含义
- RAID0 striping 条带方式,提高单盘吞吐率
- RAID1 mirroring 镜像⽅式,提⾼可靠性
- RAID5 有奇偶校验
- RAID10 RAID 1 与 RAID 0 的结合
# 2. 软件 RAID 配置
yum install -y mdadm | |
# 事先准备好三个新磁盘分区(也可以直接针对磁盘),同样大小 | |
# sdb1 sdc1 | |
# RAID1 | |
mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd[b,c]1 | |
# 查看 | |
mdadm -D /dev/md0 | |
# 追加配置信息到配置文件,下次开机才会自动创建软件 RAID | |
# 实验不建议设置 | |
# echo DEVICE /dev/sd[b,c]1 >> /etc/mdadm.conf | |
# mdadm -Evs >> /etc/mdadm.conf | |
# 格式化 也可以像普通磁盘一样划分分区后再格式化 | |
mkfs.xfs /dev/md0 | |
# 破坏 RAID,使底层磁盘分区可以再重用 | |
# 先停止 RAID 工作 | |
mdadm --stop /dev/md0 | |
# 再破坏超级块 | |
dd if=/dev/zero of=/dev/sdb1 bs=1M count=1 | |
dd if=/dev/zero of=/dev/sdc1 bs=1M count=1 | |
# 自行尝试做 RAID5 |
# 五、逻辑卷管理
# 1. 逻辑卷基本概念
逻辑卷和文件系统的关系
# 2. 创建逻辑卷
# 1. 添加硬盘 | |
fdisk -l sd?? | |
# 2. 创建物理卷 | |
pvcreate /dev/sd[b,c]1 | |
pvs | |
# 3. 创建卷组 | |
vgcreate vg1 /dev/sd[b,c]1 | |
pvs | |
vgs | |
# 4. 创建逻辑卷 | |
lvcreate -L 30M -n lv1 vg1 | |
lvs | |
vgs | |
# 5. 使用 | |
mkdir /mnt/test | |
mkfs.xfs /dev/vg1/lv1 | |
mount /dev/vg1/lv1 /mnt/test |
# 3. 动态扩容
# /dev/sdd1 是 PV 名,不是磁盘名和分区名 | |
vgextend vg1 /dev/sdd1 | |
vgs | |
lvs | |
# /dev/vg1/lv1 是 LV 名 | |
lvextend -L +20G /dev/vg1/lv1 | |
lvs | |
df -h | |
xfs_growfs /dev/vg1/lv1 |
-
# 删除 LVM
# 删除 lv | |
# 如果 lv 已经挂载,需要先 umount 取消挂载 | |
lvremove /dev/vg1/lv1 | |
# 删除 vg | |
vgremove vg1 | |
# 删除 pv | |
pvremove /dev/sd[b,c]1 |