Linux 磁盘管理

磁盘管理

  • 常用命令
  • 硬盘分区
    • 初始化硬盘
    • 划分分区
    • 创建文件系统——格式化
    • 挂载
    • 写入配置文件
    • 查看硬盘分区情况
  • 磁盘阵列
    • 阵列介绍
    • mdadm指令
    • RAID 0
    • RAID 1
      • 如何拆卸RAID
    • RAID 5
  • 划分分区
    • 创建磁盘阵列和格式化
    • 挂载
    • 写入配置文件
    • 验证
  • 磁盘配额
    • 文件系统:xfs
    • 文件系统:ext4

常用命令

  • 查看分区使用情况:df -h
  • 查看文件、目录大小:du -h /etc/
  • 查看文件详细时间参数:stat /etc/passwd
  • 校验文件md5值:md5sum /etc/passwd
  • 检测修复文件系统:fsck、e2fsck (单用户模式卸载文件系统后执行)

硬盘分区

  • 划分分区(fdisk)
  • 创建文件系统(mkfs)
  • 尝试挂载(mount)
  • 写入配置文件(/etc/fstab)
  • 查看硬盘分区情况(lsblk)

SAS硬盘可以热插拔,插入硬盘后,磁盘会立刻显示在fdisk -l 的列表里,可以立刻开始使用。
SCSI硬盘还没这么便捷,但也是可以做到不重启就加入使用的。

初始化硬盘

不重启服务器也能立刻使用,通过修改/proc/scsi/scsi文件
查看/proc/scsi/scsi的文件(作前后对比)

操作方法:

我们以root权限执行 echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi  添加scsi设备

解释一下 scsi add-single-device a b c d 这个指令中的参数:                        
# 相反  scsi remove-single-device a b c d 是用来移除设备的

a ------- Host 是硬盘所在的SCSI控制器的编号,这里只有一个控制器,所以为0
b ------- Channel 硬盘所在SCSI通道的编号,这里是单通道,为0
c ------- Id 硬盘的SCSI ID号,就是插入的硬盘插槽编号,
d ------- Lun ,硬盘的lun号[logical unit number]即逻辑单元号,指的是一个用于SCSI总线的唯一的识别号,
          总线使它能区别其他八个设备(它们每个都是一个逻辑单元)。 

再看看效果:# cat /proc/scsi/scsi
Linux 磁盘管理_第1张图片 

划分分区

如何分区?
#fdisk /dev/sdb 进入到fdisk模式
Linux 磁盘管理_第2张图片输入命令F,查看未划分的空间
输入命令n,添加新分区
主分区最多可以建4个。
扩展分区里,再创建逻辑分区。

划分5个区
第一个分区,主分区是4G大小
Linux 磁盘管理_第3张图片为什么第一个扇区不是从0开始?因为在硬盘的最前面,是放硬盘的控制信息,也叫超级块(super block)。所以从2048开始。 如果0磁道坏了,无法修复。

Linux 磁盘管理_第4张图片Linux 磁盘管理_第5张图片Linux 磁盘管理_第6张图片
5、6、7、8是逻辑分区。 sd2扩展分区是逻辑分区的容器,是不能直接挂载的。 5、6、7、8可以挂载
Linux 磁盘管理_第7张图片命令w写入到硬盘里面,再用lsblk查看
Linux 磁盘管理_第8张图片 

创建文件系统——格式化

现在分区有了,如何对磁盘进行格式化? mkfs
#mkfs.xfs /dev/sdb1 对sdb1构建文件系统
Linux 磁盘管理_第9张图片 

挂载

#cd /mnt
#mkdir mydisk1
#mount /dev/sdb1 /mnt/mydisk1
#lsblk
Linux 磁盘管理_第10张图片同理,其他的分区,也要这样先格式化,再挂载才能使用
 

写入配置文件

写入到配置文件
#vim /etc/fstab
第一个数字代表是否 内存上的恢复,系统有问题会把内存写入到磁盘下,1代表开启,0代表关闭
第二个数字代表是否 对这个分区进行检查,1代表开启,0代表关闭
Linux 磁盘管理_第11张图片然后重启 reboot

查看硬盘分区情况

结果:
Linux 磁盘管理_第12张图片 

磁盘阵列

阵列介绍

RAID0:RAID0 具有低成本、高读写性能、 100% 的高存储空间利用率等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。
Linux 磁盘管理_第13张图片

RAID1:RAID1 为了增强数据安全性使两块 磁盘数据呈现完全镜像,从而达到安全性好、技术简单、管理方便。 RAID1 拥有完全容错的能力。 磁盘利用率50%
Linux 磁盘管理_第14张图片

RAID5:RAID5 的磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上,当一个数据盘损坏时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。(通过奇偶校验计算出) 至少需要3块硬盘
Linux 磁盘管理_第15张图片Ap、Bp、Cp、Dp 奇偶校验
性能 和 可靠性 兼顾,但磁盘利用率会损耗,因为有校验码

mdadm指令

mdadm命令常见参数解释:

参数 作用
-a 检测设备名称、添加磁盘
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列

RAID 0

现在有四块块硬盘,其中一个是按照自带的sda,一个sdb是上个实验的,sdc和sdd是新添加的

#vim /etc/fstab
删除刚才的内容
#umount /dev/sdb1
然后重启后,scsi编号会变。要先确认控制器的编号是什么。
Linux 磁盘管理_第16张图片#fdisk /dev/sdb 进入模式,输入命令d,删除分区
Linux 磁盘管理_第17张图片

 

RAID 1

虚拟机上添加4个硬盘

#fdisk /dev/sdb
命令:m
默认:p
命令:t
Hex代码:fd  将分区Linux的类型更改为 Linux raid autodetect
命令:w  保存

同样操作对 /dev/sdc sde
Linux 磁盘管理_第18张图片

可以看到一件把sdb1 sdc1 sde1分出来了

创建 镜像卷 和 热备盘

#mdadm -C -v /dev/md1 -l 1 -n 2 /dev/sdb1 /dev/sdc1 -x 1 /dev/sde1

查看磁盘当前状态:cat /proc/mdstat

挂载:#mount /dev/md1 /mnt/raid1 (要先创建 #mkdir -p /mnt/raid1)

lsblk -l 表示以列表方式显示block设备的信息
Linux 磁盘管理_第19张图片
向硬盘里面写入一个有大小的文件: dd if=/dev/zero of=/mnt/raid1/test bs=1M count=10
出去的数据流

热备盘作用体现
模拟硬盘出问题:#mdadm -f /dev/md1 /dev/sdb1
查看磁盘当前状态:#cat /proc/mdstat 能看到热备盘启动中,数据正在恢复 recovery
查看磁盘详细状态:#mdadm -D /dev/md1

把坏的硬盘拿下来:#mdadm -r /dev/md1 /dev/sdb1
查看磁盘详细状态:#mdadm -D /dev/md1 可以看到total devices:2
添加硬盘:#mdadm -a /dev/sdb1
查看磁盘详细状态:#mdadm -D /dev/md1发现sdb1作为热备盘了

如何拆卸RAID

把raid的信息写入到配置文件。 防止下次开机出问题
#mdadm -Ds > /etc/mdadm.conf
也可以放在fstab ,向上面一样

拆卸:#umount /dev/md1
umount:/mnt/raid1:target is busy (因为在当前目录)
停止:#mdadm -S /dev/md1
三个分区的超级块清空:
#mdadm --zero-superblock /dev/sdb1
#mdadm --zero-superblock /dev/sdc1
#mdadm --zero-superblock /dev/sde1

 

RAID 5

创建:mdadm -C -v /dev/md5 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sde1 -x 1 /dev/sdd1
-l 表示指定RAID 级别
-n 表示需要的硬盘
-x 表示加热备盘

创建文件系统:mkfs.xfs /dev/md5

cd /mnt
mkdir raid5
mount /dev/md5 /mnt/raid5
查看硬盘:lsdblk -l
#cat /proc/mdstat

模拟坏了硬盘:#mdadm -f /dev/md5 /dev/sde1
查看情况:cat /proc/mdstat
查看详细信息:#mdadm -D /dev/md5
卸下坏的硬盘:mdadm -r /dev/md5 /dev/sde1
同步好之后加入进去:mdadm -a /dev/sde1
做永久的挂载:#mdadm -Ds /etc/mdadm.conf

#vim /etc/fstab
#/dev/md5 /mnt/raid5 xfs defaults 0 0

第一个0是系统崩溃的时候,把系统写入到分区里。 0表示并不会写入
第二个0是启动时是否要对这个分区进行检查,0表示不检查

重启后 df 验证

 

划分分区

fdisk /dev/sdb
新建分区,更改分区类型
Linux 磁盘管理_第20张图片输入命令:t,在输入L,修改类型。如果最后提示错误的话,等修改完sdc和sdd,再重启,通过lsblk再次验证
Linux 磁盘管理_第21张图片fdisk /dev/sdc

Linux 磁盘管理_第22张图片
fdisk /etc/sdd
Linux 磁盘管理_第23张图片结果:
Linux 磁盘管理_第24张图片 

创建磁盘阵列和格式化

安装工具:dnf info mdadm 创建和管理磁盘阵列
创建磁盘阵列
#mdadm -C -v /dev/md0 -l 0 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1
md这个命名是固定的,序号自己定。

  • -l 0 表示raid 0 两块硬盘同时读写
  • -n 3 表示3块磁盘用作磁盘阵列
    Linux 磁盘管理_第25张图片在镜像启动的时候可以进行挂载,必须把mdadm -Ds 写到配置文件。这样重启之后,这个镜像还在。如果没写的话,可能会失效
    #mdadm -Ds >/etc/mdadm.conf
    然后进行格式化
    Linux 磁盘管理_第26张图片 

挂载

#mkdir /mnt/raid0
#mount /dev/md0 /mnt/raid0
#df -h 初步验证
Linux 磁盘管理_第27张图片Linux 磁盘管理_第28张图片 

写入配置文件

写入到配置文件 /etc/fstab,为了系统重启之后还能正常使用
#vim /etc/fstab
Linux 磁盘管理_第29张图片 

验证

重启后最终验证
Linux 磁盘管理_第30张图片
总结:
fdisk 后n 划分, mkfs 格式化,手动写入 /etc/fstab 自动挂载,lsblk查看

 

磁盘配额

作用:限制用户使用的磁盘空间
查看磁盘配合工具有没安装:dnf info quota

文件系统:xfs

文件系统:xfs

对用户、组设置配额功能:
#vim /etc/fstab
/dev/md5 /mnt/raid5 xfs defaults,uquota,gquota 0 0

#umount /mnt/raid5
#mount -o uquota,gquota /dev/md5 /mnt/raid5

查看配额报告:#xfs_quota -x -c 'report' /mnt/raid5

设置block的软硬限制:#xfs_quota -x -c 'limit bsoft=100M bhard=150M Kolor'
软限制有限定时间的

查看配额报告:#xfs_quota -x -c 'report -ubih' /mnt/raid5

#passwd Kolor
#chmod 777 /mnt/raid5  为了避免后面的权限不足
#su Kolor
$cd /mnt/raid5
$dd if=/dev/zero of=/mnt/raid5/test bs=1M count=100
zero表示填充0
of是输出
bs是每一块数据的大小
$xfs_quota -x -C 'report' /mnt/raid5

延长软硬件时间:#xfs_quota -x -c 'timer -b -u 30days' /mnt/raid5
查看配合状态:#xfs_quota -x -c 'state'
卸载配合限制:#xfs_quota -x -c 'disable -up' /mnt/raid5

#xfs_quota -x -c 'report -ubh' /mnt/raid5

文件系统:ext4

文件系统:ext4

#fdisk /dev/sdb
n->p->w流程

#mkfs.ext4 /dev/sdb1
#vim /etc/fstab
/dev/sdb1 /mnt/sdb ext4 defaults,usrquota,grpquota  0 0

#cd /mnt
#mkdir sdb
#mount /dev/sdb1 /mnt/sdb
#mount -o remount /mnt/sdb
#quotacheck --cvug /mnt/sdb
#ls  查看到配置文件
#quotaon /mnt/sdb  打开挂载点功能

改配置文件:
#edquota -u Kolor
102400 204800

#chmod 777 /mnt/sdb
#su Kolor
$dd if=/dev/zero of=/mnt/sdb/test bs=10M count=30
会提示:超出磁盘限额

你可能感兴趣的:(#,Linux,linux,运维)