系统管理篇(2)-磁盘管理
系统管理篇(2)- 磁盘管理
一、磁盘使用监控
1. 查看命令
fdisk
既可以查询磁盘信息,又可以进行磁盘分区;
磁盘设备是块设备,不要去修改其权限;
自行学习
parted
命令。fdisk -l fdisk -l /dev/sd? # 查看磁盘 fdisk -l /dev/sd?? # 查看分区
df
df -Th
lsblk
lsblk
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 afile ls -li afile # 大小0代表什么? du -h afile echo 123 > afile ls -li afile du -h afile # 大小代表什么? cp afile afile2 ls -li afile* # 观察i节点编号,代表什么? mv afile2 afile3 ls -li afile* # 观察i节点编号,代表什么? vi afile4 # 写入内容,保存退出 ls -li afile4 vi afile4 # 修改 ls -li afile4 # 观察i节点编号,代表什么? rm afile4 # i节点和文件名断开 ln afile bfile ls -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/test mount -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