一、磁盘介绍
磁盘(disk)是指利用磁记录技术存储数据的存储器。
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。
1、机械硬盘与固态硬盘的区分
机械硬盘(HDD):Hard Disk Drive
机械硬盘是计算机存储设备的一种,主要用来存储数据资料。机械硬盘因内置电机而得名,是由控制电机、旋转轴、盘片、读写磁头、以及相关接口控制电路组成的数据存储设备。
固态硬盘(SSD):Solid State Drive
又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。
固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上基本与普通硬盘一致(新兴的U.2,M.2等形式的固态硬盘尺寸和外形与SATA机械硬盘完全不同)。
新一代的固态硬盘普遍采用SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、M.2接口、CFast接口、SFF-8639接口和NVME/AHCI协议。
2、磁盘的物理结构
●盘片:硬盘有多个盘片,每盘片有2面(正反两面)
●磁头:每面一个磁头,并不是只有一个磁头,磁头也不会碰到盘面,磁头等于盘片数量
3、磁盘的数据结构
●扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据(扇区越多容量越大)
●磁道:同一盘片不同半径的同心圆
●柱面:不同盘片相同半径构成的圆(柱面和磁道数量相同)
4、 硬盘存储容量
● 硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数
1柱面=512 * 扇区数/磁头数×磁道=51263255=7.84M
●可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
5、硬盘接口的类型
硬盘接口类
● IDE:133MB/s,并行接口,早期家用电脑
● SCSI:640MB/s,并行接口,早期服务器
● SATA:6Gbps,SATA数据端口与电源(长的电源,数据线短的)端口是分开的,即需要两条线,一条数据线,一条电源线
● SAS:6Gbps,SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行。
● M.2:
● 光纤接口
服务器硬盘大小
● LFF:3.5寸,一般见到的那种台式机硬盘的大小
● SFF:Small Form Factor 小形状因数,2.5寸,注意不同于2.5寸的笔记本硬盘
● L、S分别是大、小的意思,目前服务器或者盘柜采用sff规格的硬盘主要是考内虑增大单位密度内的磁盘容量、增强散热、减小功耗
二、分区
●优化I/O性能
● 实现磁盘空间配额限制
●提高修复速度
● 隔离系统和程序
●安装多个OS
● 采用不同文件系统
1、MBR分区
MBR区是计算机硬盘的一种分区模式,位于整个硬盘的0磁道0柱面1扇区。
在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节交给了DPT(Disk Partition Table硬盘分区表)
常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来存储文件数据。
MBR(主引导记录):Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
- 446bytes: boot loader 启动相关
- 64bytes:分区表,其中每16bytes标识一个分区
- 2bytes: 55AA
MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区对应的1–4,/dev/sda3,逻辑分区从5开始,/dev/sda5
2、GPT分区
GPT分区:GPT(GUID Partition Table)中文名称叫做全局唯一标识分区表。
它和MBR分区的区别就是引导方式和分区结构的不同;支持硬盘分区的容量不同,MBR分区结构最高支持到2T硬盘,2T及以上分区就需要GPT分区结构;MBR分区直接存储数据和引导记录,GPT分区的数据和引导记录是分开存储的,并且理论上支持无限量的分区;GPT在win10系统中可以支持128个分区,最高可以管理18EB的磁盘。
win10操作系统可以UEFI启动,也可以MBR启动。
3、文件系统
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。
文件系统的组成
- 内核中的模块:ext4, xfs, vfat
- Linux的虚拟文件系统:VFS
- 用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
XFS
- 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
- 用优化算法,日志记录对整体文件操作影响非常小
- 是一个全64-bit的文件系统,最大可以支持8EB的文件系统,1EB=1024PB1PB=1024TB(这里才到TB1TB=1024GB
- 而支持单个文件则达到8EB能以接近裸设备I/O的性能存储
swap
swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的 RAM 保存系统处理的数据
时会将数据写入 swap 分区,当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过
多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存不足。
FAT16、FAT32、
且最大只能支持32GB分区,单个文件也只能支持最大4GB
NTFS(xfs)
NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB
EXT4
Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分
区是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件
(16TB)、最大1EB的文件系统,以及速度的提升1EB=1024PB=1024TB
JFS
主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。1PB=1024TB
4、创建主分区、扩展区、逻辑区
使用XShell7连接Linux CentOS7
1)进入.bashrc,使用vim编辑器编辑
[root@localhost ~]# vim .bashrc
2)进入.bashrc编辑器中添加命令 添加硬盘时,自动扫描新加的磁盘
alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'
3)修改 .bashrc文件之后,需要刷新修改的内容才能生效
[root@localhost ~]# source .bashrc
4) 当linux启动时,添加硬盘需要输入scan刷新
[root@localhost ~]# scan
临时挂载分区
5)进入新建的硬盘中创建分区
p表示 主分区,e表示扩展分区,l表示逻辑分区
[root@localhost etc]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x3b6e6ad0 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+20G
值超出范围。
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
分区号 (2-4,默认 2):
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+4G
分区 2 已设置为 Extended 类型,大小设为 4 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (20975616-29362175,默认为 20975616):
将使用默认值 20975616
Last 扇区, +扇区 or +size{K,M,G} (20975616-29362175,默认为 29362175):
将使用默认值 29362175
分区 5 已设置为 Linux 类型,大小设为 4 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
6)查看磁盘分区表信息
[root@localhost /]# fdisk -l
磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a42de
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 4196351 2097152 83 Linux
/dev/sda2 4196352 117458943 56631296 8e Linux LVM
磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:4294 MB, 4294967296 字节,8388608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8c69c617
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb2 20973568 29362175 4194304 5 Extended
/dev/sdb5 20975616 29362175 4193280 83 Linux
7)刷新新建硬盘
[root@localhost ~]# partprobe /dev/sdb
8)以ext4形式格式新建的三个分区
[root@localhost /]# mkfs.ext4 /dev/sdb1;mkfs.ext4 /dev/sdb2;mkfs.ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
mke2fs 1.42.9 (28-Dec-2013)
mkfs.ext4: inode_size (128) * inodes_count (0) too big for a
filesystem with 0 blocks, specify higher inode_ratio (-i)
or lower inode count (-N).
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048320 blocks
52416 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
9)在mnt中新建文件夹
[root@localhost ~]# mkdir /mnt/disk1 /mnt/disk5
[root@localhost ~]# ls /mnt
disk1 disk5
如若出现此状况,输入reboot重启系统程序可新建成功
[root@localhost /]# mkdir /mnt/disk1 /mnt/disk5
mkdir: 无法创建目录"/mnt/disk1": 只读文件系统
mkdir: 无法创建目录"/mnt/disk5": 只读文件系统
10)将主分区和逻辑分区分别挂载到新建的文件夹中
[root@localhost ~]# mount -t ext4 /dev/sdb1 /mnt/disk1
[root@localhost ~]# mount -t ext4 /dev/sdb5 /mnt/disk5
11)查看分区是否挂载到指定的文件夹中
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 3.5G 47G 7% /
devtmpfs 977M 0 977M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 9.1M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 2.0G 161M 1.9G 8% /boot
tmpfs 199M 4.0K 199M 1% /run/user/42
tmpfs 199M 24K 199M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 9.8G 37M 9.2G 1% /mnt/disk1
/dev/sdb5 3.9G 16M 3.7G 1% /mnt/disk5