第7章 存储管理
7.1 存储方式
- 从连接方式:
本地存储:直接插在服务器上的硬盘,系统文件存放在本地。本章主要介绍本地存储。
外部存储:可以理解为平时使用的移动硬盘,不过移动硬盘用的是USB接口连接,一般外部存储可以使用SCSI线、SATA线、SAS线、FC线。
网络存储:以太网络、FC网络。当存储的数据量非常庞大时,不可能再存储到本地,需要存储到专门的存储设备上或者存储集群里,这时用户可以通过网络去连接与使用这些数据。
- 从工作原理上,硬盘分为固态硬盘(Solid State Drire,SSD)与机械硬盘(Hard Dist Drire,HDD)。
7.2 基本分区
7.2.1 添加新硬盘
- 在虚拟机上为系统添加一块新硬盘:
- 使用lsblk命令查看新添加的硬盘
7.2.2 MBR分区
- 用fdisk命令,添加“-l”参数可以查看系统所挂硬盘个数及分区情况,具体如下所示:
-
使用fdisk命令对sdc硬盘进行分区:
-
输入“n”参数尝试创建新的分区:
-
一个是创建主分区,另一个是创建扩展分区。此处选择主分区,可输入“p”参数,系统默认选择主分区,直接按回车键即可:
-
分区编号1~4,系统默认为1,按回车键即可:
-
系统提示定义扇区的起始位置,系统会自动选择最靠前的空闲扇区位置,直接按回车键即可,此时默认为2048:
-
用户可以通过添加扇区或添加尺寸的方式定义扇区的终止位置,也就是定义最终分区空间的大小,一般选择使用添加尺寸的方式,此处添加100MiB:
-
输入“p”参数,查看硬盘中的分区信息,可以看到刚创建的名称为/dev/sdc1,起始扇区位置为2048,终止扇区位置为206847的主分区:
-
输入“n”参数再次创建一个分区,目前主分区还有3个free,一般建议最多创建3个主分区,第4个位置留给扩展分区。如果全部创建主分区,以后就不能再分了:
-
第2个分区创建为扩展分区,输入“e”参数,分区编号使用默认2,按回车键。起始扇区使用系统默认值206848,继续按回车键:
-
创建扩展分区是为了以后创建更多的逻辑分区,建议扩展分区占用全部剩余扇区,终止位置为默认的20971519,按回车键即可:
-
输入“p”参数,查看目前硬盘中的分区信息,增加了dev/sdc2,起始扇区位置为206848,终止扇区位置为20971519的扩展分区:
-
输入“n”参数,系统提示选择分区类型,包括主分区与逻辑分区,目前已经没有可用扇区,不能再次创建主分区。输入“l”参数,创建逻辑分区,起始扇区使用系统默认值208896,按回车键,终止扇区定义为5GiB:
-
输入“p”参数,查看已创建的逻辑分区/dev/sdc5信息:
-
输入“w”保存所有分区设置:
-
使用ll命令可以查看新分区的设备文件:
7.2.3 GPT分区
采用GPT(GUID Partition Table,GUID磁盘分区表)形式创建分区,其创建过程与MBR无太大差别。
- 使用gidsk命令对sdb硬盘进行分区,系统显示创建新的GPT分区表:
- 输入“?”可以查看帮助信息,输入“n”参数进行分区,此时没有分区选择,直接按回车键创建主分区,起始扇区使用默认值,按回车键定义终止扇区。设置为添加100MiB,系统提示当前类型是Linux系统,直接回车即可:
-
再创建一个分区,定义终止扇区时设置为添加5GiB:
-
输入“p”参数显示分区信息,输入“w”保存,系统会提示即将写入GPT数据,这将覆盖已存在的分区,询问是否继续,输入“y”即可:
-
操作成功后,如果为真实硬盘需执行partprobe命令,此时使用lsblk命令可以查看新分区信息:
7.2.4 创建文件系统
创建分区后并不能立即存放数据,需要对分区进行格式化。如果将分区比作一间教室,格式化就是在教室里摆放桌椅,数据就是学生,规定每个学生占用一套桌椅。格式化是组织文件系统的方式,常用的文件系统有EXT与XFS。
- 在终端中输入“mkfs”后连续按2次tab键可以查看所有文件系统类型:
-
使用EXT4文件系统格式化/dev/sdb1主分区,块大小为1024字节。块是文件存储的最小单元,若文件小于1KiB,也会占用1KiB的存储空间。sdb1分区大小为100MiB,因此有102400个块:
-
使用EXT4文件系统格式化/dev/sdb2主分区,其中块大小为4096字节,含有1310720个块,即使文件大小为一个字节,也会占用4KiB的存储空间:
-
使用XFS文件系统格式化/dev/sdc1主分区,块大小为4096字节,一共有25600个块:
-
使用XFS文件系统格式化/dev/sdc5主分区,块大小为4096字节,一共有1310720个块:
7.2.5 挂载分区
格式化完成后需挂载分区。
- 首先创建两个目录作为挂载点,然后使用mount命令临时把sdb01分区与 sdb02分区分别挂载到data01与data02目录上。现在这两个目录不再是两个普通的目录,而是设备的挂载点,用户要往设备中存放数据,需要借助挂载点:
- 使用“df -h”命令查看文件系统的挂载点,可以看到新创建的两个挂载点data01与data02:
-
挂载完成后,分别在这两个目录下创建两个空目录dir01与dir02,然后使用ll命令查看data01与data02目录,同样大小的空目录所占的存储空间是不一样的。sdb1分区1块为1024字节,dir01目录至少占1024字节;sdb2分区1块为4096字节,dir02目录至少占4096字节:
-
使用mount命令挂载是临时性的,系统重新启动后便失效,需要再次挂载。用户可以修改/etc/fstab配置文件,使其永久有效。首先创建两个目录data03与data04作为设备挂载点,然后使用blkid命令查看设备的UUID,从中找到sdc1与sdc5分区,复制其UUID,并粘贴到/etc/fstab配置文件的末尾:
- 在/etc/fstab配置文件中写入设备的UUID,其中sdc1分区的挂载点为data03,文件系统类型为xfs,挂载选项为defaults,最后两个数字为0,表示不备份、不检测;sdc5分区的挂载点为data04,文件系统类型为auto(自动),挂载选项为ro(只读),最后两个数字为0,表示不备份、不检测:
- 重新启动系统就可以读取新挂载的设备,也可使用“mount -a”命令读取/etc/fstab文件并挂载设备。使用df命令查看已挂载设备信息,添加“T”参数可显示设备文件的类型,添加“h”参数可显示设备大小:
-
在完成硬盘的分区、挂载与格式化之后,可尝试通过挂载点存储数据:同时向data03与data04目录复制/etc/hosts文件。data03目录可以写入,data04提示无法创建常规文件:
-
使用mount命令可以显示设备的权限,之前设置/dev/sdc5分区为只读: