前言、本章学习目标
- 掌握fdisk分区类型和管理分区
- 了解parted分区类型
- 掌握LVM模式文件系统
- 创建、扩展、缩小文件系统
一、磁盘的分区管理
在 Linux 中有专门的分区命令 fdisk 和 parted。其中 fdisk 命令较为常用,但不支持大于 2TB 的分区;如果需要支持大于 2TB 的分区,则需要使用 parted 命令,当然 parted 命令也能分配较小的分区。
fdisk分区
命令的格式如下:
[root@localhost ~]# fdisk -l
#列出系统分区
[root@localhost ~]# fdisk 设备文件名
#给硬盘分区
parted分区
parted 命令是可以在命令行直接分区和格式化的,不过 parted 交互模式才是更加常用的命令方式,进入交互模式的方法如下:
[root@localhost ~]# parted 硬盘设备文件名
#进入交互模式
fdisk搭建步骤(分区->格式化->挂载)
1、分区(fdisk)
查询新增磁盘,磁盘名称为“/dev/sdb”:
# fdisk -l
磁盘分区后得到“/dev/sdb1”:
# fdisk /dev/sdb
m (查看帮助)
n (增加新分区)
p (使用主分区)
1 (分区号选1)
直接回车 (第一个磁柱号选默认的1)
直接回车 (最后的磁柱号选默认的最大值)
w (保存)
2、格式化(mkfs)
格式化分区时使用ext4格式:
# mkfs.ext4 /dev/sdb1
3、挂载(mount)
创建挂载点目录:
# mkdir /data
挂载文件系统:
# mount /dev/sdb1 /data
二、LVM管理LINUX文件系统
LVM是Logical Volume Manager(逻辑卷管理器)的简称,它可以使管理员在Linux系统上更加灵活的规划和使用磁盘空间。
1、为什么要使用LVM
对于传统的分区类型,其尺寸是固定的,不能够动态扩展。因此在使用之前,管理员需要提前规划分区的用途和需要的尺寸。一旦某个分区的尺寸不能满足需求了,管理员将不得不重新分区,或者将包含足够空间的新磁盘分区挂载到原有文件系统上。使用LVM处理这样的问题将获得更大的灵活性。
例如,有一个10GB的磁盘,创建“/home”分区使用了2GB。现在“home”没有足够的可用空间了,于是决定将“/home”扩展到3GB。用传统的分区方式,管理员将不得不创建一个3GB大小的分区,并备份“/home”的全部内容;将建立的新分区挂载到“/home”,然后将备份的“/home”数据恢复上去。
2、LVM的基本概念和术语
在LVM中最终面向用户的是经过逻辑划分的磁盘空间,它建立在具体的物理介质上,这个物理介质可以是一个磁盘或一个磁盘分区。
物理卷Physical Volume(PV)
一个物理卷只不过是一个有LVM管理数据添加在里面的物理存储介质。要使用LVM系统,首先对要用于LVM的磁盘进行初始化,初始化的目的就是将磁盘或分区标识为LVM 的物理卷。使用pvcreate 命令可以将一个磁盘标记为 LVM 物理卷。
物理分区Physical Extents(PE)
LVM将每个物理卷分为叫做物理分区的可寻址存储单元,存储单元的大小通常为几MB。磁盘的开头部分为LVM元数据,之后从索引为零开始,每个物理分区的索引依次递增一,按顺序进行分配。
卷组Volume Group(VG)
物理卷可以组织为卷组。卷组可以由一个或多个物理卷组成,同时系统中可以有多个卷组。创建了卷组之后,该卷组(而不是磁盘)便是表示数据存储的实体。因此,尽管以前是将磁盘从一个系统移动到另一个系统,使用了 LVM 之后,会将卷组从一个系统移动到另一个系统。出于这种原因,通常在一个系统上创建多个卷组会比较方便。
逻辑卷Logical Volume(LV)
卷组所代表的磁盘空间可以分配给不同大小的逻辑卷。创建逻辑卷之后,就可以将其视为传统的磁盘分区来处理。通过设备专用文件可访问逻辑卷。一个逻辑卷可以跨越一个卷组中的多个物理卷,也可以仅代表物理卷中的一个分区。就像使用传统的分区一样,在逻辑卷上可以创建一个文件系统。
3、LVM创建逻辑卷
·创建物理卷
pvcreate/dev/sdb
·为卷组分配物理卷
vgcreate vg01 /dev/sdb
·从卷组创建逻辑卷
lvcreate -L 200M-n data vg01
mkfs.ext4 /dev/vg01/data
备注:#man vgcreate
一个中默认最多有65534个PE,每个PE缺省为4M,所以你创建的逻辑卷的大小最大为65534,假设创建500G的逻辑卷必须增大pe大小,*4M=256G,
4、LVM的灵活配置
增加卷组:
·fdisk、pvcreate增加物理设备
·vgextend增加卷组
·减小卷组:
·pvmove移除物理卷
·vgreduce减小卷组
·增加卷的大小
·vgdsiplay验证卷组大小
·lvextend扩大逻辑卷
·resize2fs增加文件系统大小
·减小卷的大小
·umount卸载文件系统
·fsck检查文件系统
resize2fs减小文件系统
·Ivreduce减小逻辑卷
注意,减小卷组,缩容文件系统前请先做好相关备份,缩容有一定风险。
三、Linux系统中常见文件系统格式
msdos: dos文件系统类型
vfat:支持长文件名的dos分区文件系统,可以理解为winds文件系统类型
iso9660: 光盘格式文件系统
ext2/ext3/ext4: linux下主流的文件系统
xfs: linux下一种高性能的日志文件系统,在centos7.x中默认的文件系统
NFS: Network File System,网络文件系统,是当前主流异构平台共享文件系统之一,主要用于linux系统,搭配自己相对应的传输协议,测试存储会使用的文件系统之一
CIFS:Common Internet File System 也称通用Internet文件系统,通过SMB协议,主要用于windows,
CEPH FS:Ceph FS是一个支持POSIX接口的文件系统,它使用 Ceph 存储集群来存储数据。文件系统对于客户端来说可以方便的挂载到本地使用。
四、Linux几种文件系统格式区别
1. EXT3
(1)最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件
(2)Ext3目前只支持32000个子目录
(3)Ext3文件系统使用32位空间记录块数量和i-节点数量
(4)当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块
2. EXT4
EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本。
(1)Ext4的文件系统容量达到1EB,而文件容量则达到16TB
(2)理论上支持无限数量的子目录
(3)Ext4文件系统使用64位空间记录块数量和i-节点数量
(4)Ext4的多块分配器支持一次调用分配多个数据块
3. XFS
(1)根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
(2)采用优化算法,日志记录对整体文件操作影响非常小
(3) 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间
(4)能以接近裸设备I/O的性能存储数据
五、/etc/fstab文件详解
/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。
当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。
基础示例:
/dev/sda1 /boot ext4 defaults 0 0
第一列可以是分区名,可以用UUID或卷标表示(前提分区用卷标设置了)
第二列是挂载点。挂载点必须为当前已经存在的目录,否则在使用mount -a 会出错,开机也会遇到问题。
第三列为此分区的文件系统类型。Linux可以使用ext2、ext3 ext4 xfs 等类型,必须和格式化时的类型一致。也可以使用 auto,自动检测。
第四列是挂载的选项,用于设置挂载的参数。常见参数如下:defaults: rw, suid, dev, exec, auto, nouser, and async./noauto 开机不自动挂载/nouser 只有超级用户可以挂载/ro 按只读权限挂载/rw 按可读可写权限挂载/user 任何用户都可以挂载
第五列 是否备份,1表示备份 0表示不备份。通常在/上使用。
第六列是fsck磁盘检查设置。其值是一个顺序。当其值为0时,表示不检查。
六、查看文件系统硬盘使用情况
1、df 命令
用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。
df 命令的基本格式为:
[root@localhost ~]# df [选项] [目录或文件名]
由 df 命令显示出的各列信息的含义分别是:
Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
Used:表示用掉的硬盘空间大小;
Available:表示剩余的硬盘空间大小;
Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。
2、du命令
统计目录或文件所占磁盘空间大小
du 命令的格式如下:
[root@localhost ~]# du [选项] [目录或文件名]
选项:
-a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
-h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;
-s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
du命令和df命令的区别
有时我们会发现,使用 du 命令和 df 命令去统计分区的使用情况时,得到的数据是不一样的。那是因为df命令是从文件系统的角度考虑的,通过文件系统中未分配的空间来确定文件系统中已经分配的空间大小。也就是说,在使用 df 命令统计分区时,不仅要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)。
而 du 命令是面向文件的,只会计算文件或目录占用的磁盘空间。也就是说,df 命令统计的分区更准确,是真正的空闲空间。
七、本章实验
1、虚拟机添加1块磁盘,完成逻辑卷的创建、扩容、缩减等操作内容。
2、模拟fstab文件出错时不能启动的故障修复。