1.1,磁盘基础
1,磁盘结构
硬盘(简称HDD)是计算机常用的存储设备之一。
(1)物理结构
盘片:硬盘有多少个盘片,每盘片2面
磁头:每面一个磁头
(2)数据结构
扇区:磁盘上的每个磁道被分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导扇区。
磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道(Track)
柱面:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面(Cylinder)
(3)存储容量
硬盘存储容量=磁头数x磁道(面)数x每道扇区数x每扇区字节数。
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,用fdisk-l 查看分区信息
2.硬盘的接口
硬盘按数据接口不同,大致分为ATA(IDE)和SATA以及SCSI和SAS,接口速度不是实际硬盘数据传输的速度。
ATA,全称AdvancedTechnologyAttachment,并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间大,不利于电脑内部散热,已逐渐被SATA取代
SATA,全称Serial ATA,抗干扰性强,支持热插拔等功能,速度快,纠错能力强。
SCSI,全称是 Small Computer System Interface(小型机系统接口),SCSI 硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU 占用率较低,转速快,支持热插拔等。
SAS(Serial Attached SCSI)是新一代的 SCSI技术,和 SATA 硬盘相同,都是采取序列式技术以
获得更高的传输速度,可达到6Gb/s。
1.2 磁盘分区表示
1. MBR
MBR 是主引导记录(Master Boot Record),位于硬盘第一个物理扇区处,MBR 中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区,每个分区记录区占 16个字节。
2,磁盘分区的表示
常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来存储文件数据。
在Windows系统中,使用盘符的形式(如盘、D盘、E盘等)来表示不同的主分区、逻辑分区而忽略了不能直接存储文件数据的扩展分区。那么在Linux系统中又是如何表示这些分区的呢?
Linux 内核读取光驱、硬盘等资源时均通过“设备文件”的形式进行,因此在Linux系统中,将硬盘和分区分别表示为不同的文件。具体表述形式如下
硬盘:对于IDE接口的硬盘设备,表示为“hdX”形式的文件名;而对于SCSI接口的硬盘设备,则表示为“sdX”形式的文件名。其中“X”可以为a、b、c、d等字母序号。例如,将系统中的第1个IDE设备(硬)表示为“hda”,将第2个SCSI设备表示为“sdb”
分区:表示分区时,以硬盘设备的文件名作为基础,在后边添加该分区(无论主分区、扩展分区、逻辑分区)对应的数字序号即可。例如,第个DE硬盘中的第1个分区表示为“hdal”第2个分区表示为“hda2”,第2个SCSI硬盘中的第3个分区表示为“sdb3”、第5个分区表示为“sdb5”
注意:由于硬盘中的主分区数目只有4个,因此主分区和扩展分区的序号也就限制在1~4,而逻辑分区的序号将始终从5开始。
3.Linux中使用的文件系统类型
文件系统(FileSystem)类型决定了向分区中存放、读取文件数据的方式和效率,在对分区进行格式化时需要选择所使用的文件系统类型。在Windows操作系统中,经常使用的文件系统类型包括FAT32、NTFS等格式;而在Linux系统中,最常使用的文件系统主要包括以下几种格式。
XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万T字节的存储空间。由于XFS文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记承在短时间内进行数据恢复
SWAP:交换文件系统,用于为Linux系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的1.5~2倍
EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使用的文件系统(Cent0S7默认使用XFS)。EXT4是典型的日志型文件系统,其特点是保存有盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。Linux系统还广泛支持其他各种类型的文件系统,如JFS、FAT16、FAT32、NTFS。
4.管理磁盘及分区
在Linx服务器中,当现有硬盘的分区规划不能满足要求(例如,根分区的剩余空间过少,无法继续安装新的系统程序)时,就需要对硬盘中的分区进行重新规划和调整,有时候还需要添加新的硬盘设备来扩展存储空间。
增加硬盘设备时首先需要在机箱内进行硬盘接口的物理连接。若是在Vware虚拟机环境中,可以修改虚拟主机的设置,添加一块“HardDisk”硬盘设备(如添加一块100GB的SCSI 硬盘)
2.1检测并确认新硬盘
挂接好新的硬盘设备并启动主机后,Linux操作系统会自动检测并加载该硬盘,无须额外安装驱动。执行“fdisk-1”命令可以査看、确认新增硬盘的设备名称和位置。“fdisk-”命令的作用是列出当前系统中所有硬盘设备及其分区的信息,且体操作如下:
[root@localhost ~]# fdisk-l
Disk /dev/sda:107.4GB,107374182400 bytes,209715200 sectors
Units =sectors of 1*512 =512 bytes
Sector size(logical/physical):512 bytes512
bytesI/0 size(minimum/optimal):512 bytes/512 bytes
Disk label type: dos......
上述输出信息中包含了各硬盘的整体情况和分区情况,其中“/dev/sda”为原有的硬盘设备,而“/dev/sdb”为新增的硬盘,没有包含有效的分区信息。对于已有的分区,将通过列表的方式输出以下信息。
Device | 分区的设备文件名称 |
Boot | 是否是引导分区。若是,则有“*”标识 |
Start | 该分区在硬盘中的起始位置(柱面数) |
End | 该分区在硬盘中的结束位置(柱面数) |
Blocks | 分区的大小,以Blocks(块)为单位,默认的块大小为1024字节 |
Id | 分区对应的系统ID号。83表示Linux中的XFS分区或EXT4分区、8e 表示 LV 逻辑卷。LVM是Linux操作系统中对磁盘分区进行管理的一种逻辑机制 |
System | 分区类型。 |
识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在Linux操作系统中,分区和格式化是独立的
2.2规划硬盘中的分区
在硬盘设备中创建、删除、更改分区等操作同样通过fdisk命令进行,只需使用硬盘的设备文件作为参数。例如,执行“fdisk/dev/sdb”命令,即可进入交互式的分区管理界面中
[root@localhost ]# fdisk /dev/sdb
Welcome to disk(util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new Dos disklabel with disk identifier x5d8lef3e.
Command (m for help):
(1).“p”指令--列出硬盘中的分区情况
使用“p”指令可以列出详细的分区情况,信息显示的格式与执行“fdisk-1”命令相同。硬盘中尚未建立分区时,输出的列表信息为空
2.“n”指令--新建分区
使用“n”指令可以进行创建分区的操作,包括主分区和扩展分区。根据提示继续输入“p”选择创建主分区,输入“e”选择创建扩展分区。之后依次选择分区序号、起始位置、结束位置或分区大小即可完成新分区的创建。
选择分区号时,主分区和扩展分区的序号只能为1~4。为保证分区连续,分区起始位置一般由fdisk默认识别即可,结束位置或大小可以使用“+sizeM”或“+sizeG”的形式,如“+20G”表示将该分区的容量设置为20GB。
(1)创建1个主分区
(2)创建一个扩展分区和两个逻辑分区
使用剩余的硬盘空间可以创建扩展分区,然后在扩展分区中创建逻辑分区。需要注意的是,若主分区逻辑分区均已创建完毕(四个主分区号已用完),则再次输入“n"指令后将不再提示选择分区类别。
分区),
mkfs /dev/sda
Command(mfor help):n
Partition type:
p primary(2 primary,0 extended,2 free)e extended
Select(default p):e
Partition number(3,4,default 3):4
First sector(83888128-209715199,default 83888128):
Using default value 83888128
Last sector,+sectors or+size{K,M,G}(83888128-209715199,default 209715199):
Using default value 209715199
Partition 4of type Extended and of size 60 GiB is set
3 "d"指令--删除分区
使用“d”指令可以删除指定的分区,根据提示继续输入需要删除的分区序号即可。在执行删除分区时一定要慎重,应首先使用p指令查看分区的序号,确认无误后再进行删除。需要注意的是,若扩展分区被删除,则扩展分区之下的逻辑分区也将同时被删除。因此建议从最后一个分区开始删除,以免fdisk识别的分区序号发生紊乱。
下面的操作过程将删除上一步建立的逻辑分区/dev/sdb6
Command(mfor help):d
Partition number(1,2,4-6,default 6):6
Partition 6 is deleted
(4).“t”指令--变更分区的类型
在fdisk分区工具中,新建的分区默认使用的分区类型为Linux,一般不需要更改。但是若新建的分区需要用作Swap交换分区或其他类型的分区,则需要对分区类型进行变更以保持一致性,以避免在理分区时产生混淆
使用“t”指令可以变更分区的ID号。操作时需要依次指定目标分区序号、新的ID号。不同类型的ID号对应不同的分区类型,不同的分区类型支持不同类型的文件系统,以十六进制数表示,在isk交互环境中可以输入“1”指令进行列表。最常用的XFS、Swap文件系统对应的ID号分别为83、82,面用于Windows中的NTFS文件系统对应的ID号一般为86.
执行下面的操作可以将逻辑分区“dev/sdb5”的类型更改为Swap,通过“p”指令可以确认分区/dev/sdb5 的分区ID已由默认的83 变为 82。
Command(m for help):t
Partition number(1,2,4,5,default 5):5Hex code(typeLto list all codes): 82Changed type of partition 'Linux'to 'Linux swap/Solaris'Command(m for help): p
5.“w”和“q”指令--退出 fdisk 分区工具
完成对硬盘的分区操作以后,可以执行“w”或“q”指令退出fdisk分区工具。其中“w”指令将保存分区操作,而“q”指令不会保存对硬盘所做的分区操作。对已包含数据的硬盘进行分区时,一定要做
好数据备份,保存之前要确保操作无误,以免损坏数据。若无法确定本次分区操作是否正确,建议使用“q指令不保存退出。“w”指令的具体操作如下:
Command(m for help):w
The partition table has been altered!
ioctl()to re-read partition table.Calling
Syncing disks
3管理文件系统
在Linux操作系统中,使用fdisk工具在硬盘中建立分区以后,还需要对分区进行格式化并挂载到系统中的指定目录,然后才能用于存储文件、目录等数据。将学习如何格式化并挂载分区
3.1创建文件系统
创建文件系统的过程即格式化分区的过程,在inux操作系统中使用kfs(MakeFiles7sr,创建文件系统)命令工具可以将分区格式化成XFS、EXT4、FAT等不同类型的文件系统,而Sap交操分区是使用swap命令来进行格式化的。
1.mkfs 命令的使用
实际上mfs命令是一个前端工具,可以自动加载不同的程序来创建各种类型的文件系统,而后端包括多个与mfs命令相关的工具程序,这些程序位于/sbin/日录中,支持EXT文件系统的x1程序等
实例:
ls/sbin/mks*
使用mkfs命令时,基本的命令格式
mkfs-t 文件系统类型 分区设备
(1)创建XFS文件系统
当需要创建 XFS文件系统时,只需结合“-txfs”选项指定类型,并指定要被格式化的分区设备即可。例如,执行以下操作将把分区/dev/sdb1格式化为XFS文件系统
[root@localhost ~]# mkfs -t xfs /dev/sdb1 //或执行 mkfs.xfs /dev/sdb1
2.mkswap命令的使用
在Linux操作系统中,Swap分区的作用类似于Windows操作系统中的“虚拟内存”,可以在一定程度上缓解物理内存不足的情况。当Linux主机运行的服务较多,需要更多的交换空间支撑应用时,可以为其增加新的交换分区。
使用mkswap命令工具可以在指定的分区上创建交换文件系统,目标分区应先通过s工具将D号设为82。例如,执行以下操作可以将分区/dev/sdb5创建为交换分区
fdisk -l /dev/sda
mkswap /dev/sda5
3.2挂载、卸载文件系统
在Linux操作系统中,对各种存储设备中的资源访问(如读取、保存文件等)都是通过目录结构进行的,虽然操作系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源。
1.挂载文件系统
mount 命令的基本使用格式如下:
mount [ -t 文件 系统类型 ] 存储设备 挂载点
mount /dev/cdrom /media/cdrom
mount 命令的“-t”选项用于指定文件系统类型,而“-o”选项则用来描述设备或文件系统的挂载方式,基本使用格式如下:
mount [ -o 挂载参数 ] 存储设备 挂载点
2.卸载文件系统
需要卸载文件系统时使用的命令为umount,使用挂载点目录或对应设备的文件名作为卸载参数。Linux操作系统中,由于同一个设备可以被挂载到多个目录下,所以一般建议通过挂载点的目录位置来进行卸载。例如,执行以下操作将分别卸载前面挂载的Linux 分区、光盘设备。[root@localhost ~]#umount /mailbox
[root@localhost ~]# umount /dev/cdrom/
3.设置文件系统的自动挂载
系统中的/etc/fstab 文件可以视为mount 命令的配置文件,其存储了文件系统的静态挂载数据Linux 操作系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。默认的 fstab文件中包括了根分区、/boot分区、交换分区挂载配置。执行如下命令可以查看当前系统内自动挂载的设备或分区。
cat /etc/fstab
4.查看磁盘使用情况
不带选项及参数的mount命令可以显示分区的挂载情况,若要了解系统中已挂载各文件系统的磁盘使用情况(如剩余磁盘空间比例等),可以使用df命令使用文件或者设备作为命令参数,较常用的选项为“-h”和“-T”。其中,“-h”选项可以显示更易读的容量单位,而“-T”选项用于显示对应文件系统的类型。例如,执行“df-hT”命令可以查看当前系统中挂载的各文件系统的磁盘使用情况,具体操作如下:
[root@localhost ~]# df -hT
二,LVM逻辑卷管理
1 LVM逻辑卷管理
许多Linux操作系统的使用者在安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量。如果当初估计不准确,一旦系统分区不够用就可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要。
1.1 LVM 概述
LVM是Linux操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上、文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此能够在保持现有数据不变的情况下动态调整磁盘容量,从面增强磁盘管理的灵活性。
1.PV(Physical Volume,物理卷)
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LW的属性,并把存储空间分割成默认大小为B的基本单元(PhysicalExtent,PE),从面构成物理卷,
2.VG(Volume Group,卷组)
由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷,。许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自行定义。
3.LV(Logical Volume,逻辑卷)
逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷使用mkfs等工具在逻辑卷上创建文件系统以后,就可以挂载到Linux 操作系统中的目录下使用
2.2LVM 的管理命令
为了便于理解,这里先使用fdisk 工具在磁盘设备“/dev/sdb”中划分出三个主分区sdbl、sdb2、sdb3,每个磁盘的空间大小为20GB,将分区类型的ID标记号改为“8e”。磁盘类型的ID为“8e”表示该分区是LinuxLVM类型的,支持LVM机制。若上述分区已被挂载使用,则需要先进行卸载,再进行分区调整操作。
LVM 管理命令主要包括三大类:物理卷(PV)管理、卷组(VG)管理、逻辑卷(LV)管理,对应的命令程序文件分别以“pv”、“vg”、“lv”开头
功能 | PV 管理命令 | VG 管理命令 | LV管理命令 |
Scan(扫描) | pvscan | vgscan | lvscan |
Create(建立) | pvcreate | vgcreate | Ivcreate |
Display(显示) | pvdisplay | vgdisplay | lvdisplay |
Remove(移除) | pvremove | vgremove | lvremove |
Extend(扩展) | vgextend | lvextend | |
Reduce(减少) | vgreduce | lvreduce |
实例:
将硬盘划分为一个独立的主分区并查看
fdisl -l /dev/sdb /dev/sdc
将分区划分为物理卷
pvcreate /dev/sdb1 /dev/sdc1
创建一个名为mail的卷组
vgcreate mail /dev/sdb1 /dev/sdc1
在mail中创建一个名为mbox的逻辑卷容量为120GB
lvcreate -L 120G -n mbox mail
使用mkfs 命令对逻辑卷mbox进行格式化
mkfs -t xfs /dev/mail/mbox