结构:
磁盘基础
检测并确认新硬盘
规划硬盘中的分区
创建文件系统
挂载、卸载文件系统
磁盘结构:
硬盘的物理结构:1.盘片:硬盘有多个盘片,每盘片2面;
2.磁头:每面一个磁头
硬盘的数据结构: 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存 储单位
磁道:同一盘片不同半径的同心圆,是由磁头在盘片表面画出的椭圆形轨迹
柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
硬盘存储容量=磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
可以用柱面/磁头/扇区/来唯一定位磁盘上每一个区域
磁盘的接口类型:IDE、SATA、SCSI、光纤通道
IDE:并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已 逐渐被SATA所取代。
SATA:抗干扰性强,支持热插拔等功能,速度快,纠错能力强。
SCSI:小型机系统接口,SCSI 硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU 占用率较低,转速快,支持热插拔等。
SAS:是新一代的SCSI 技术,和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达 到6Gb/s
机械硬盘(HDD):传统的普通硬盘,由盘片,磁头,盘片转轴及控制电机,磁头控制器,数据 转换器,接口,缓存等组成
固态硬盘(SSD):由固态电子存储芯片阵列制成的硬盘;由控制单元和存储单元组成。
MBR与磁盘分区的表示
主引导记录(MBR):MBR位于硬盘第一个物理扇区处
MBR中包含硬盘的主引导程序和硬盘分区表
分区表4个分区记录区,每个分区记录区占16个字节
LINUX中将硬盘、分区等设备均表示为文件
硬盘分区:常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个, 而扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区,主 分区一般用来安装操作系统,扩展分区则多用来存储文件数据。对于一个硬盘来说, 主分区至少1个,最多4个;扩展分区可以没有,最多1个,且主分区+扩展分区总共不 能超过4个;逻辑分区可以有若干个
分区的原因:优化I/O性能;实现磁盘空间配额限制;提高修复速度;隔离系统和程序;安装多个 os;采用不同文件系统
分区的优点:便于管理;优化读写性能
分区的缺点:一旦建立无法修改,如果要修改,只能推导重建,重新格式化,数据丢失; 不够灵活,空间只能来自于一块硬盘,并且必须是连续的空间; 没有备份冗余功能,没有备份,需要依靠工程师手动备份
主引导记录(MBR):总共446字节,一般在操作系统安装时写入,但它并不属于操作系统。 MBR就是一段引导程序,用于加载操作系统,它的重要作用就是识别活动 分区,并引导操作系统
分区表DPT:共64字节,记录了硬盘有多少分区以及分区的各种属性,由于一个分区的信息要占 用16字节,所以分区表只能定义4个分区,这就是为什么我们说硬盘最多只能分为4 个主分区(这里的一般是对基本磁盘而言)
磁盘分区结构:硬盘中的主分区数目只有4个;主分区和扩展分区的序号限制在1~4;扩展分区再 分为逻辑分区;逻辑分区的序号将始终从5开始
alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" >
/sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/
scan'
设置一个别名,将硬件刷新的过程直接赋予给别名,方便后续使用
fdisk 【查看管理磁盘分区,限2T以下的硬盘;2T以上用gdisk和parted命令】
交互模式中的常用指令
m、p、 n、 d、 t、 w、q
m:获取帮助菜单
n:新建分区
p:查看分区情况
d:删除分区
t:变更分区的类型
w:保存分区操作并退出
q:不保存分区操作并退出
1.若磁盘小于2TB,可用fdisk /dev/sdb 进行分区,即MBR 分区格式
2.若磁盘大于2TB,可用parted /dev/sdb 进行分区,因为MBR分区磁盘是不能大于2.2TB,所以超 过2TB一般使用GPT【GPT分区(可以分128个区)使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统可以启动)】
例:新建一个20G硬盘,并建立1个新的主分区,大小10G
先在虚拟机设置中添加一个20G的硬盘
[root@AAA zy002]# alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'【设置一个别名,将硬件刷新的过程直接赋予给别名,方便后续使用】
[root@AAA zy002]# scan
[root@AAA zy002]# lsblk 【查看设备硬盘】
此时就可以看到新添加的硬盘sdb已经添加成功
[root@AAA zy002]# fdisk /dev/sdb 【对dev下的sdb硬盘进行管理】
Command (m for help): n 【n:新建分区】
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p 【p:选择建立主分区;e为扩展分区】
Partition number (1-4, default 1): 1 【选择默认第1分区】
First sector (2048-41943039, default 2048): 【起始位置可以不填,直接默认回车】
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G 【分10G给新建分区】
Command (m for help): w 【保存退出】
The partition table has been altered!
[root@AAA zy002]# lsblk
若sdb1没能显示,可以用partprobe刷新
文件系统类型:是操作系统用于明确存储设备或分区上的文件的使用方法和数据结构;即在存储 设备上组织使用文件的方法。操作系统中负责管理和存储文件信息的软件结构。 简单来说就是用来管理文件(增删改查恢复)的程序
XFS文件系统:存放文件和目录数据的分区;高性能的日志型文件系统,擅长处理大文件,可支 持上百万TB的存储空间;centos 7系统中默认使用的文件系统。
SWAP,交换文件系统:为linux系统建立交换分区;一般设置为物理内存的1.5~2倍【相当于缓 存】
Linux支持的其它文件系统类型:EXT4、FAT32、NTFS、LVM
mkfs命令:mkfs(make filesystem)创建文件系统(格式化):mkfs -t 文件系统类型 分区设备
示例: mkfs -t xfs /dev/sdb1
或 mkfs.xfs /dev/sdb1
临时挂载:[root@localhost /]# mount /dev/sdb1 /opt/ky27
[root@localhost dev]# df -hT 【查看文件系统的类型】
创立分区的完整流程:1.给硬盘 2.分区 3.格式化(创建文件管理 系统) 4.挂载
primary:主分区 extended:扩展分区 logical:逻辑分区
创建交换文件系统(make swap)mkswap:【命令格式:mkswap 分区设备】
创建swap之前,目标分区应先通过fdisk 工具将分区类型ID 号设为 82
fdisk /dev/sdb
-->t 【改变类型】
-->2 【交换分区号,跟所选主分区号一致】
-->82 【交换分区代码】
w 【保存退出】
mkswap /dev/sdb2 【格式化交换分区】
swapon /dev/sdb2 【启用新增加的交换分区】
swapoff /dev/sdb2 【停用指定的交换分区】 swapoff -a 【关闭所有】
swapon -s 【查看每个分区的swap状态信息】
free -h 【查看总的swap状态信息】
不进入设置分区查看分区命令:fdisk -l /dev/sdb1 【只能查看单个信息,看不到类型】
fdisk -l /dev/sdb 【可以看到所有的分区类型】
fdisk -l /dev/sdb /dev/sdc /dev/sdd 【同时查看多个】
或者 fdisk /dev/sdb 进入设置分区后 点p(查看)
挂载前先格式化
临时挂载文件系统、ISO镜像到指定文件夹
mount [-t 类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
-t:用于指定文件系统类型,通常可以省略,由系统自动识别
-o:挂载参数列表,以英文逗号分隔;如用来描述特殊设备,用loop指定
卸载已挂载的文件系统
卸载前提:挂载的设备或者目录没有被在使用中,要先退出挂载目录
umount [-lf] 存储设备目录或者挂载点目录
-l 表示解除正在繁忙的文件系统
-f 表示强制
umount /dev/sdb1 /opt/test 解除临时挂载
永久挂载1.:现在opt目录下建立一个挂载目录test
vim /etc/fstab
进入最后一行:/dev/sdb1 /opt/test xfs defaults 0 0
wq! 【保存退出】
mount -a 【刷新】
df -hT 【查看文件系统所有选项】
注:【/dev/sdb1是要挂载的设备名称;/opt/test是要挂载的目录;xfs 文件系统类型 ;defaults是选项 ;0表示在系统启动时不检查磁盘的顺序 ,该数字决定在系统启动时进行磁盘检查的顺序。0 表示不进行检查,1 表示优先检查,2 表示其次检查。根分区应设为 1,其他分区设为 2 】
| 选项 | 功能 |
| ----------- | ------------------------------------------------------------ |
| rw/ro | 是否对挂载的文件系统拥有读写权限,rw 为默认值,表示拥有读写权 限;ro 表示只读权限。 |
| async/sync | 此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默 认为异步async。 |
| dev/nodev | 是否允许从该文件系统的 block 文件中提取数据,为了保证数据安装,默 认是nodev。 |
| auto/noauto | 是否允许此文件系统被以 mount -a 的方式进行自动挂载,默认是 auto。 |
| suid/nosuid | 设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有。 |
| exec/noexec | 设定在文件系统中是否允许执行可执行文件,默认是允许。 |
| user/nouser | 设定此文件系统是否允许让普通用户使用 mount 执行实现挂载,默认是 不允许(nouser),仅有 root 可以。 |
| defaults | 定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。 |
| remount | 重新挂载已挂载的文件系统,一般用于指定修改特殊权限。 |
永久挂载2:通过光盘镜像挂载
vim /etc/fstab
/dev/sr0或/dev/cdrom /mnt iso9660 defaults 0 0
wq!
mount -a 【刷新】
df -hT
与永久挂载1相似
gdisk【查看管理磁盘分区,2T以上】【用法与fdisk一样】
parted:【查看管理磁盘分区,2T以上】【即刻生效,无法修改】
操作实例:
1、选择分区硬盘
首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/hdd: ((parted)表示在parted中输入的命令
,其他为自动打印的信息) # parted /dev/hdd
GNU Parted 1.8.1
Using /dev/hdd
Welcome to GNU Parted! Type 'help' to view a list of commands.
2、创建分区
选择了/dev/hdd作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息) (parted) mklabel
New disk label type? gpt #我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入
gpt后回车
3、完成分区操作
创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区
的起止位置 (parted) mkpart
Partition name? []? dp1
File system type? [ext2]? ext4
Start? 0 (可以用百分比表示,比如Start? 0% , End? 50%)
End? 500GB
4、验证分区信息
分好区后可以使用print命令打印分区信息,下面是一个print的样例 (parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdd: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1
5、删除分区示例
如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果 (parted) rm 1 #rm后面使用分区的号码,就是用print打印出来的Number
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdd: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
6.格式化操作,完成后即可挂载使用
# mkfs.ext4 /dev/hdd1
# mkdir /data
# mount /dev/hdd1 /data
7.最后加入/etc/fstab自动挂载
# vi /etc/fstab
/dev/sdd1 /data ext4 defaults 0 0
怎么查看磁盘的读写性能:iostat