Linux 磁盘存储管理

image

Blue Archive


磁盘存储管理概述

image

image

image

Linux磁盘分区

命名方式

image
image

分区体系

MBR分区和GPT分区

管理分区的命令

image

fdisk MBR分区
gdisk GPT分区
parted 两者都可以

下面主要以命令 fdisk为例:

fdisk -l //查看目前分区情况

image
那我们就对/dev/sda进行分区吧:
image


image

表示 主分区有0个,扩展分区有0个 有4个空闲的分区号

image

这里的 2048-2097151 这种数值表示的是扇区数


Linux 在磁盘分区上建立文件系统并挂载

建立文件系统

image

  • 查看分区设备文件系统
file -s /dev/sdb

blkid /dev/sdb
  • 创建文件系统
mkfs -t ext4 /dev/sdb
mkfs.ext4 /dev/sdb
  • 通过设置卷标/UUID区别文件系统
e2label /dev/sdb //查看卷标
e2label /dev/sdb newlabel 设置卷标

image
image



挂载

在创建文件系统后,我们需要将文件系统挂载到目录下,一般给我们挂载的目录有:

/media
/mnt

我们可以在其中设置继续设置目录:如,/mnt/sda

  • 不要重复挂载在不同的挂载点(目录)中
  • 一个目录不要重复挂载
  • 一般挂载点(目录)中为空

手动挂载

image
image

mount /dev/sdb /mnt/sdb  
mount //查看挂载情况

mount -o remount,rw /mnt/sdb //-o 的选项通过逗号分隔!

配置文件自动挂载

/etc/fstab 是一个重要文件,系统在初始化时会按照其上记录信息进行设备的挂载

image

通过 man 5 fstab
image

可以查看到各个字段含义

我们可以仿照其写法,配置要自动挂载的设备

卸载

image


备份并恢复

image

完全备份就是备份以往全部的内容
差异备份就是备份 与上一次完全备份 有不一样的内容
增量备份就是备份 与上一次备份 有不一样的内容

tar 实现完全备份和增量备份

tar 本身就是用于备份的命令,其自动实现的就是增量备份

当完全没有做备份时,用tar做备份就是完全备份,反之就是增量备份

mkdir testdir

tar -g snapshot -zcf test0.tar.gz testdir

# snapshot 是记录备份信息的文件

# 查看备份信息
tar -tf test0.tar.gz

# 恢复备份
tar -g snapshot -zxf test0.tar.gz

使用dump备份和restore恢复

image

根据上述性质,如果想要完成增量备份,则每一次设置比上一次级别高
如果想要完成差异备份,第一次使用级别0,第二次使用级别1,后面可以一直使用级别1

# 进行0级别的备份,将/mnt/sdb1分区备份为/mnt/sdb2/sdb1.dump
dump -0u -f /mnt/sdb2/sdb1.dump /mnt/sdb1

# 查看备份的内容
restore -tf /mnt/sdb2/sdb1.dump

# 恢复备份
restore -rf /mnt/sdb2/sdb1.dump

磁盘阵列

操作系统学了,下面是常见的:

image

image

image

当我们想要使用RAID作为磁盘使用时,整体思路为:

  • 1.创建分区
    并且将分区的id改为fd
fdisk /dev/sdb
t
fd //即将这个分区改为RAID设备
  • 2.用mdadm 命令创建阵列
mdadm -Cv /dev/md0 -l 1 -n 2 -x 1 /dev/sdb[123]

/dev/md0 是这个阵列的名字
-C 是--create 创建
-v是 显示出更多信息
-l 表示要创建阵列的级别 
-n 表示活动设置的个数
-x 表示空闲(预备)设备的个数

/dev/sdb[123] 是我们使用的分区

man mdadm 查看更多内容

  • 3 然后创建文件系统,再挂载
mkfs -s ext4 /dev/md0

mkdir /raid1

mount /dev/md0 /raid1
  • 4 其他一些管理阵列的命令

    • 查看RAID信息
      mdadm -D /dev/md0 或 cat /proc/mdstat

      -D 是 --detail 打印出细节

    • 从阵列中移除分区

      mdadm /dev/md0 -r /dev/sdb1

    • 添加分区

      mdadm /dev/md0 -a /dev/sdb1

    • 将RAID配置放到配置文件中
      mdadm -Ds > /etc/mdadm.conf

      上述命令也可以完整显示当前全部RAID设备的信息
      image

    • 往RAID中追加设备扩容
      mdadm -G 5 /dev/md0

    • 监控RAID设备
      image


停用RAID设备

  • 卸载 处于挂载的RAID
	umount /dev/md0
  • 停用RAID
	mdadm -S /dev/md0
	
	mdadm -Ss
	s是扫描/proc/mdstat文件,S是停用
	则-Ss组合起来就是停用全部RAID
	
	mdadm -As
	那么这个就是启用全部RAID了
  • 清除配置文件 /etc/mdadm.conf
mdadm -Ds > /etc/mdadm.conf

即可
  • 清除分区

image


LVM

image

LVM 逻辑卷管理

PV 物理卷

VG 卷组 ,卷组创建后,可动态地加入物理卷到卷组中,放便为文件系统扩容

LV 逻辑卷,对应图上LV层中被分成的一个一个框框

PE/LE 物理扩展/逻辑扩展,其为LVM寻址的最小存储单元
image

image

创建LVM的步骤

  • 将使用到的分区改id
    image
fdisk /dev/sdb
t
8e
  • 创建物理卷PV
pvcreate /dev/sdb[12]

pvscan //查看信息
pvdisplay //查看更详细信息
  • 创建卷组
vgcreate -s 1M vg1 /dev/sdb[12]
-s 设置PE大小
vg1为卷组名
/dev/sdb[12]为使用的分区

vgscan
vgdisplay
  • 创建逻辑卷
lvcreate -l 500 -n lv1 vg1
-l 表示创建的PE个数
-n 表示逻辑卷的名称
vg1 表示在卷组vg1上创建

lvcreate -L 400m -n lv2 vg1
-L 是指定创建的逻辑卷大小
  • 创建文件系统
mkfs.ext4 /dev/vg1/lv1
mkfs.ext4 /dev/vg1/lv2
  • 挂载
mkdir /lv1
mount /dev/vg1/lv1 /lv1

df -Th /dev/vg1/lv1

image
image
image

动态管理空间

扩容

  • 扩大逻辑卷空间
# 首先需要往卷组上看一眼,卷组的是否还有空间
vgdisplay

# 卷组有空间,利用卷组的空间为逻辑卷进行扩容
lvresize -l +500M /dev/vg1/lv1

# 然后要反应到文件系统上
# 需要注意的是要先挂载,然后再扩展文件系统
# 如果是ext4的文件系统
resize2fs /dev/vg1/lv1

# 如果是xfs的文件系统
xfs_growfs /dev/vg1/lv1

# 注意默认其会将逻辑卷上全部的空闲空间用于扩展文件系统
  • 扩大卷组
# 想要扩大卷组就要先扩大物理卷
pvcreate /dev/sdb[35]

# 然后再扩大卷组卷
vgextend vg1 /dev/sdb[35]

回收

  • 从逻辑卷中回收空间
# 先卸载文件系统
umount /lv1

# 然后需要缩小文件系统
resize2fs /dev/vg1/lv1 600M

# 上述含义为缩小为600M

# 然后再缩小逻辑卷
lvreduce -L 600M /dev/vg1/lv1

# 最后再重新挂载
mount /dev/vg1/lv1


快照

image

# 为分区/dev/vg1/lv1创建快照 lv1s
lvcreate -s -L 100M -n lv1s /dev/vg1/lv1

# 查看当前的全部lv 设备
lvs

# 将快照挂载
mkdir /lv1s
mount /dev/vg1/lv1s /lv1s

# 利用快照进行恢复

# 卸载快照
umount /dev/vg1/lv1s
# 卸载要恢复的分区
umount /dev/vg1/lv1
# 恢复
lvconvert --merge /dev/vg1/lv1s

使用交换分区和交互文件

详细博客
image

image

image

增加交换分区

# 改id
fdisk /dev/sdc
l
t 
82

image

可以查看交换分区使用情况:
free 

image

# 使用/dev/sdc1创建交换分区
mkswap /dev/sdc1
# 使用交换分区
swapon /dev/sdc1

查看交互分区的具体使用情况:
swapon -s 

停掉交换分区
swapoff /dev/sdc1

#也可更改这个文件使开机启用这个交互分区
vim /etc/fstable

# 增加交换文件

dd if=/dev/zeri of=/swapfile1 bs=1M count=200
# count 是bs的数量

chmod 0600 /swapfile1
mkswap /swapfile1
swapon /swapfile1

free
交换空间也会增加

swapon -s

# 停用这个交换文件
swapoff /swapfile1
rm -f /swapfile1

磁盘配额

为何需要磁盘配额?

image
image


进行配额设置

df -T

image

上述命令可以看到当前全部挂载分区以及其文件系统

使用软件包quota进行操作

在进行配额之前需要增加一些挂载选项

#-o 接参数 remount 可以在不卸载的情况下重新以后面参数的形式再次挂载
mount -o remount,usrquota,grpquota /dev/sdc2 /sdc2

或在挂载之前使用

mount -o usrquota,grpquota /dev/sdc2 /sdc2

或者可以写在/etc/fstab文件下 开机后自挂载
/dev/sdc2	/mnt/sdb1	ext4	defaults,usrquota,grpquota	0 0
  • 然后对于ext4系列文件系统执行
# 扫描文件系统并生成配额文件
quotacheck -cvug /sdc2

# 接下来就可以开启配额功能了
quotaon /sdc2

#关闭为
quotaoff /sdc2


# 设置限额

edquota -u mike	# 设置用户磁盘限额
edquota -g groupA # 设置组磁盘限额
edquota -t # 设置宽期限

quota -u mike # 查看用户磁盘限额使用情况
quota -g groupA # 查看设置组磁盘限额使用情况

在edquota 中
blocks 表示用户实际上使用了多少
soft hard (前面的这个代表大小)
500M 600M
soft hard(后面的这个代表文件)
100 120
image

  • 对于xfs文件系统执行

image

其余相关命令

lost+found目录是什么?

博客

image

如何创建指定大小的文件

博客

image

实际操作

扩容虚拟机Linux

参考博客:


相关命令:

df:Display an overview of the filesystem disk space usage.

lsblk:Lists information about devices.

fdisk:Manage partition tables and partitions on a hard disk.

相关知识点:

  • 磁盘阵列(RAID):

    • 作用:将多个物理磁盘组合成一个逻辑单元,提高性能、可靠性或两者兼顾。
    • 层级:最底层,直接与物理硬件交互。
  • LVM(逻辑卷管理):

    • 作用:在物理存储之上提供一个逻辑抽象层,允许灵活地管理存储空间。
    • 层级:位于RAID之上,文件系统之下。
  • ext4(文件系统):

    • 作用:组织和管理存储在卷上的文件和目录。
    • 层级:最上层,直接与操作系统和用户交互。
文件系统(ext4)
      ↑
逻辑卷(LVM)
      ↑
物理卷(可能是RAID)
      ↑
物理磁盘

LVM扩展时特殊点,我们可以用lsblkfdisk查看,若出现LVM相关字样,说明用了LVM。

但是我没有使用,就是普通的磁盘管理。

通过df -Th可以看到/dev/sda3磁盘设备挂载在根目录\下,且文件系统为ext4, 可以使用fdisk /dev/sda直接进行分区管理。

具体查看上述参考博客,但是需要注意的是:在扩展了分区的物理大小后,还需要相应地调整文件系统的逻辑大小:resize2fs /dev/sda3


使用fdisk -llsblk时还会看到其他一些设备如:fd0、loop0、loop1等。

image
image

posted @ 2023-12-09 15:42  次林梦叶  阅读(92)  评论(0编辑  收藏  举报