Linux磁盘管理

本文详细介绍了Linux系统中的磁盘管理,包括MBR与GPT分区表的区别,IDE、SATA、SCSI、SAS等硬盘接口类型。此外,还讲解了物理设备命名规则、文件系统Ext3、Ext4和XFS的特点,以及如何使用lsblk、df、blkid等工具查询文件系统信息。重点阐述了Linux分区的步骤,如使用fdisk创建分区、mkfs格式化、mount挂载和umount卸载。最后,文章深入探讨了LVM逻辑卷管理,包括PV、VG、LV的概念和创建过程,以及LVM的扩容、缩容和快照操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux存储管理:

首先回顾下,centos 7 默认的文件系统是xfs ,centos 6及以前或者其他的linux默认的文件系统是ext3.

介绍两个名词:

MBR , GPT

MBR (磁盘主引导记录: master boot record)

  • <2TB fdisk 1-4个分区(4个主分区,扩展分区,逻辑分区)

例如: 3主 + 1扩展(n逻辑)

GPT(全局唯一标识分区表GUID Partition Table)

  • >2TB gdisk(parted) 128个主分区

注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!

 

IDE:Integrated Drive Electronics,IDE是一种计算机系统接口,主要用于硬盘和CD-ROM,本意为“把控制器与盘体集成在一起的硬盘”。

SATA:串行ATA(Serial ATA: Serial Advanced Technology Attachment)是一种电脑总线,主要用于个人电脑。

SCSI:小型计算机系统接口(SCSI,Small Computer System Interface)是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。

SAS:SAS(Serial Attached SCSI,串列SCSI)是由并行SCSI物理存储接口演化而来,是由ANSI INCITS T10技术委员会开发的新的存储接口标准

物理设备的命名规则:

硬件设备

文件名称

IDE设备

/dev/hd[a-d]

SCSI/SATA/U盘

/dev/sd[a-p]

软驱

/dev/fd[0-1]

打印机

/dev/lp[0-15]

光驱

/dev/cdrom

鼠标

/dev/mouse

磁带机

/dev/st0 或/dev/ht0

硬盘简介:

硬盘是由大量的扇区组成的,每个扇区的容量为 512 字节。其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用 446 字节,分区表为 64 字节,结束符占用 2 字节;其中分区表中每记录一个分区信息就需要 16 字节,这样一来最多只有 4 个分区信息可以写到第一个扇区中,这 4 个分区就 是 4 个主分区

最多只能创建出 4 个分区?

为了解决分区个数不够 的问题,可以将第一个扇区的分区表中 16 字节(原本要写入主分区信息)的空间(称之为扩 展分区)拿出来指向另外一个分区。也就是说,扩展分区其实并不是一个真正的分区,而更像 是一个占用 16 字节分区表空间的指针—一个指向另外一个分区的指针。这样一来,用户一 般会选择使用 3 个主分区加 1 个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区, 从而来满足多分区(大于 4 个)的需求

文件系统:

用户在硬件存储设备中执行的文件创建、写入、读取、修改、转存与控制等操作都是依靠文件系统来完成的。文件系统的作用是合理规划硬盘,以保证用户正常的使用需求。Linux 系统支持数十种的文件系统,而最常见的文件系统是Ext3,Ext4,xfs 等

  • Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。最大支持16TB,单个文件最大2TB。
  • Ext4:Ext3 的改进版本,作为 RHEL 6 系统中的默认文件管理系统,它支持的存储容量高达 1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4 文件系统能够批量分配 block 块,从而极大地提高了读写效率.最大支持16TB,单个文件最大16TB。
  • XFS:是一种高性能的日志文件系统,而且是 RHEL 7 中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为 18EB,这几乎满足了所有需求.

查看文件系统的信息:

lsblk:列出所有可用块设备的信息并显示他们之间的依赖关系。

df:显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB(df -hT)

常用参数:

  • -T 显示文件系统的类型
  • -h 以可读性较高的方式来显示信息(以人性化能看懂的大小格式显示)
  • -l 仅显示本地端的文件系统

blkid:查询设备上所采用文件系统类型,主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询(必须e2fsprogs软件包)

使用dumpe2fs , tune2fs , xfs_info 前先使用blkid 查看相应的文件系统

  • dumpe2fs:ext3/4文件系统使用这个
  • tune2fs:调整和查看ext2/ext3文件系统的文件系统,参数-l
  • xfs_info:xfs文件系统使用这个

Linux分区:

步骤:fdisk (创建分区) ------> mkfs (格式化)------>mount (挂载)------>umount(卸载)

(MBR使用fdisk ,GPT 使用gdisk)

1.创建分区(fdisk)

查看分区: fdisk -l 分区直接 fdisk +磁盘名称

参数:

参数

作用

m

查看全部可用的参数

n

添加新的分区

d

删除某个分区信息

l

列出所有可用的分区类型

t

改变某个分区的类型

p

查看分区信息

w

保存并退出

q

不保存直接退出

2.格式化(mkfs)

格式化,格式为“mkfs [选项] [-t <类型>] [设备]”

  • mkfs.xfs /dev/sdb1
  • mkfs -t xfs /dev/sdb1

3.挂载(mount)

首先创建挂载点,就是新建一个文件夹: mkdir guazaidian

然后临时挂载: mount 文件系统 挂载点

eg: mount /dev/sdb /home/user1 #将/dev/sdb 挂载到/home/user1

永久挂载: /etc/fstab"

格式:“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检"

权限选项:rw : 读写

  • ro : 只读
  • suid : 支持suid
  • dev : 支持设备文件
  • nodev : 不支持设备文件
  • noexec : 不允许执行二进制文件
  • exec : 允许执行二进制
  • auto : mount -a 开机自动加载
  • noauto : mount -a 开机不自动加载
  • async : 异步写入
  • sync : 同步写入
  • usrquota : 支持用户级磁盘配额功能
  • grpquota : 支持组级磁盘配额功能
  • acl : 支持acl功能
  • remount : 在线重新挂载
  • pri : 指定优先级

4.卸载(umount)

卸载挂载点或者设备都可以

umount /dev/sdb umount /home/user1 都是可以的

实例:

例子1:创建一个500MB的主分区
[root@localhost d2]# fdisk /dev/sdb
n
p
例子2:创建一个2GB的拓展分区
[root@localhost d2]# fdisk /dev/sdb
e
例子3:2GB的拓展分区中创建逻辑分区两个300MB,500MB
[root@localhost d2]# fdisk /dev/sdb
n
l
例子4:格式化500MB(例子1)的主分区
[root@localhost d2]# mkfs -t xfs /dev/sdb1

例子5:挂载
  1)创建一个挂载点(目录)
[root@localhost d2]# mkdir /tools
  2)挂载
[root@localhost d2]# mount /dev/sdb1 /tools/
  3)查看
[root@localhost d2]# mount | tail -1
  或
[root@localhost d2]# df -h | grep tools
现在根目录就会有一个文件夹可以正常使用了,其背后是新添加的那块硬盘
例子6:卸载,使用设备名或者挂载点
[root@localhost d2]# umount /tools/
或
[root@localhost d2]# umount /dev/sdb1

创建swap分区:

swap 分区:即交换区,系统在物理内存不够时,与Swap进行交换。

查看swap 分区: free -m(-m 以MB的格式显示,-h 人能看清楚的格式显示,MB,G等)

步骤:创建分区(fdisk)--- 改变分区id(t) ---格式化(mkswap)---启用(swapon)--- 停用(swapoff)

过程同创建一般分区,就是需要更改ID和格式化的命令不同,可以按照上面的例子进行创建,若是永久创建也是需要写进/etc/fstab中的

 

LVM(逻辑卷管理)

为计算机中的大量存储设备(Mass storage devices)提供更有弹性的硬盘分区方式。它是一种抽象化存储技术,实现的方式,根据操作系统而有所不同。基本上,它是在驱动程序与操作系统之间增加一个逻辑层,以方便系统管理硬盘分区系统。

LVM基本术语:

  • 物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
  • 物理卷(physical volume)(PV):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
  • 卷组(Volume Group)(VG):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
  • 逻辑卷(logical volume)(LV):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
  • PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
  • LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

LVM 创建步骤:

准备工作(分区) ---> 创建PV ---> 创建VG ---> 创建LV ---> 格式化与挂载

1.准备工作:(fdisk 分区,注意更改ID为lvm,详细过程如上例子 )

2.创建PV:pvcreate /dev/sd{....} (刚刚分的区)

查看: pvs , pvdisplay

3.创建VG: vgcreate 卷组名 磁盘名称 (pv)

查看: vgs ,vgdisplay

4.创建LV: lvcreate [选项] [LV名称] [VG名称]

选项常用:

-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |(逻辑扩展数)

     -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}(逻辑卷大小)

eg:

eg: 1.创建一个基本的lv1,大小为200M
[root@localhost d2]# lvcreate -L 100M -n lv1 vg1

2.创建一个lv1,lv2,大小为剩余空间的30%
[root@localhost d2]# lvcreate -l 30%FREE -n lv2 vg1

查看: lvs ,lvdisplay

5.格式化与挂载: mkfs.xfs ...... mount ......

 

LVM 的扩容:

步骤: lv 卸载——> vg 扩容——>lv 扩容——>重新识别文件系统

lv卸载: umount

vg扩容: vgextend vg名 磁盘名称

lv扩容: lvextend 选项 lv名

重新识别文件系统:resize2fs 用于识别ext3/ext4 的文件系统,xfs_growfs 用于识别xfs 的文件系统: 格式: resize2fs / xfsgrowfs LV名

 

LVM的缩容:(基本用不到)

  1. 确保可以缩容后的空间足够存放现有数据(df -lh)
  2. 卸载分区(umount)
  3. 强制文件系统检查(e2fsck)
  4. 文件系统缩容(resize2fs),
  5. LV分区缩容(lvreduce)
  6. 重新挂载(mount)
  7. 查看分区和文件(df -lh)

(e2fsck : 用于检查格式为ext2/3/4的linux文件系统,格式为“e2fsck [VG名称]”)

LVM的删除:

lvremove , vgremove ,pvremove

LVM的快照(基本用不到)

主要用于备份,可以在出事的时候恢复数据 创建快照 ---> 挂载快照 ---> 查看快照

 

(了解一个自动挂载:autofs ,得先下载autofs ,相应文件 /etc/auto.master , /etc/auto.nfs ,启动。)

 

文件链接:软链接(符号链接)和硬链接

软链接相当于windows中的快捷方式,硬链接相当于一个灾备系统,数据存放在两处,与复制不同的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,另外,一处数据如果被删除了,不会影响到另一处的数据(硬链接)。

 

ln [-s -v] SRC DEST

硬链接:

1、只能对文件创建,不能应用于目录;

2、不能跨文件系统;

3、创建硬链接会增加文件被链接的次数;

 

符号链接:(-s)

1、可应用于目录;

2、可以跨文件系统;

3、不会增加被链接文件的链接次数

 

磁盘冗余阵列RAID:

作 用:容错、提升读写速率

常用:

RAID 类型 个数 利用率 优缺点

-------------------------------------------

RAID0 条带集 2+ 100% 读写速率快,不容错

RAID1 镜像集 2 50% 读写速率一般,容错

RAID5 带奇偶校验条带集 3+ (n-1)/n 读写速率快,容错,允许坏一块

RAID6 带奇偶校验条带集双校验 4+ (n-2)/n 读写快,容错,允许坏两块

RAID01

RAID10 RAID1的安全+RAID0的高速 4 50% 读写速率快,容错

RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 读写速率快,容错

RAID60 RAID6的安全+RAID0的高速 8 (n-4)/n 读写速率快,容错

 

RAID 60

 

软件实现RAID步骤:

准备工作 ---> 创建RAID ---> 格式化与挂载 ---> 查看RAID

准备工作

添加硬盘创建一些分区,注意更改分区id为lvm

创建RAID

安装mdadm

-s --scan

-S --stop

-D 查看RAID详细信息

-C 创建RAID + PATH(-C /dev/md0 )

-f --fail

-r --remove

-n RAID成员的数量

-x 热备磁盘的数量

-l RAID类型

-l 5(RAID5)

[root@localhost ~]# yum -y install mdadm 
[root@localhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g} 
mdadm: array /dev/md0 started.

格式化与挂载

[root@localhost ~]# mkfs.xfs /dev/md0
[root@localhost ~]# mkdir /mnt/raid5
[root@localhost ~]# mount /dev/md0 /mnt/raid5
[root@localhost ~]# cp -rf /etc /mnt/raid5/etc1

查看RAID

[root@localhost d2]# # mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon Jan 13 16:28:47 2014
     Raid Level : raid5
     Array Size : 2095104 (2046.34 MiB 2145.39 MB)
  Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Mon Jan 13 16:34:51 2014
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K
    Number   Major   Minor   RaidDevice State
       0       8       48        0      active sync   /dev/sdd
       1       8       64        1      active sync   /dev/sde
       4       8       80        2      active sync   /dev/sdf

       3       8       96        -      spare   /dev/sdg

设置RAID开机生效

xfs_growfs命令用于重新识别xfs文件系统,格式为“xfs_growfs [LV名称]”

[root@localhost ~]# mdadm -D -s 
ARRAY /dev/md0 metadata=1.2 name=sxl1.com:0 UUID=c6761621:8878498f:f5be209e 
[root@localhost ~]# mdadm -D -s > /etc/mdadm.conf

 

创建一个5G的RAID0的分区myraid,由5个1G的分区以RAID0的方式组成
[root@localhost ~]# mdadm -C /dev/md/myraid -l0 -n5 /dev/sdc{1,5,6} /dev/sdd{1,5}

创建一个RAID1的阵列,大小为1G,由5个1G构成
mdadm -C /dev/md1 -l1 -n4 -x1 /dev/sdc{1,5,6} /dev/sdd{1,5}

停用RAID阵列
mdadm --stop /dev/md127 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值