01. 磁盘分区操作步骤
购买了多块新磁盘 --- 真实使用磁盘
1) 进行创建阵列(raid) 将几块地皮整合
2) 进行分区操作 重新规划
3) 进行格式化操作 清理地皮
4) 创建文件系统 建房子的风格
5) 进行挂载操作 有了门
02. 磁盘体系结构第一层: 磁盘体系结构详述
磁盘外部结构:
a 组成部分:
磁盘主轴:
控制磁盘转速(rpm-round per minute==rpm)
转速越快, 读写效率更高
转速越低, 读写效率越低
家用磁盘转速 7200 rpm 5400 rpm
企业磁盘转速 15k rpm 10k rpm
磁盘盘片: 用于存储数据
磁盘磁头: 用于读取数据
磁盘接口: 用于连接主板
b 接口分类: 磁盘类型
机械硬盘: SATA(串型接口) < SCSI(串行接口) < SAS
固态硬盘: PCI-e
磁盘内部结构:
磁头: 读取数据
磁道: 存储数据
扇区: 存储数据 数据存储最小单位 512字节
柱面: 存储数据 不同盘面上相同的磁道组成(圆柱体)
单元块: 表示单个柱面大小
1) 可以更准确知道磁盘读取数据原理
固态硬盘 优于 机械硬盘
a. 用户发出读取磁盘数据请求 /oldboy/oldboy.txt
b. 磁盘开始读取数据, 从0磁头,0磁道,1扇区开始读取..10扇区
c. 利用电子切换, 切换1磁头,0磁道,1扇区开始读取..10扇区
d. 利用径向运动, 切换磁道信息, 继续寻找数据
2) 可以进行磁盘大小运算
centos7:
fdisk -l --- 查看磁盘具体参数信息
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors 总共有多少扇区
Units = sectors of 1 * 512 = 512 bytes 单元块?? 一个扇区大小
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bf20e
centos6:
# fdisk -l # 显示磁盘大小信息
Disk /dev/sda: 53.7 GB, 53687091200 bytes
# 显示磁头数,扇区数/每磁道数, 柱面数
255 heads, 63 sectors/track, 6527 cylinders
# 单元块大小
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
3计算磁盘大小公式:
1) 已知扇区数量和一个扇区大小 得知磁盘总大小 centos7
awk 'BEGIN{print (104857600*512)/1000/1000/1000}'
2) 已知扇区大小512 每隔磁道扇区数量 多少个磁道==柱面 已知磁头数
awk 'BEGIN{print 512*63*6527*255/1000/1000/1000}' centos6
05. 磁盘体系结构第二层: 磁盘阵列配置 LVM配置???
1) 磁盘阵列作用
a 提供更多存储空间
b 提高数据读写效率
c 提高数据存储安全
2) 磁盘阵列的配置级别
raid 0 (至少两块)
a: 空间 不会损失磁盘容量
b: 效率 可以提升读写效率
c: 安全 没有安全可言
raid 1 (至少两块)
a: 空间 会损失一半容量
b: 效率 不会有效率提升
c: 安全 具有安全保障
企业场景: 对数据安全关注比较高的服务器 (存储服务器 数据库服务器)
raid 5 (至少三块磁盘) -- raid 6
a: 空间 只损失一块磁盘空间
b: 效率 可以提升读写效率
c: 安全 有安全保证(只能有一块磁盘损坏 热备盘 可以坏两块(不能同时))
企业场景: 大部分互联网服务器都会应用
raid 10(至少四块磁盘)
a: 空间 损失一半
b: 效率 会有提升
c: 安全 具有保障(每组只能坏一块)
企业应用场景: 数据库服务器
raid 01(至少四块磁盘
a: 空间 损失一半
b: 效率 会有提升
c: 安全 具有保障(损坏机率较高)
01. 磁盘体系结构-第二层: LVM
01LVM: 可以实现磁盘分区空间弹性缩容和扩容
在企业一般不对有数据的分区进行缩容处理
02. 磁盘体系结构-第三层: 磁盘分区说明
预备知识:
1. 系统启动引导记录 MBR
MBR存放在磁盘的0磁头 0磁道 1扇区中 512字节
a 加载引导启动系统文件数据信息 446
b 分区表的信息 64字节分区
2. 分区表概念:
一个分区表中包含: (sda)
主分区 --- 最多4个 表示方式 sda1 sda2 sda3 sda4
扩展分区 --- 只有1个 表示方式 sda5(扩展分区中逻辑分区)
PS: 扩展分区不能直接使用,需要建立逻辑分区才能使用
问题一: 如果主分区已经有4个了 还能再有扩展分区
最终磁盘只有4个分区
问题二: 如何有更多的分区
有主分区 还要有扩展分区
3个主分区 1扩展分区---逻辑分区
磁盘如何进行分区:
方法一: fdisk (磁盘小于2T)
环境准备: 需要准备两块磁盘 10M 100M
确认检查:
[root@oldboy-xiaodao.com.cn ~]# fdisk -l
Disk /dev/sdb: 10 MB, 10485760 bytes, 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 106 MB, 106954752 bytes, 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
进行分区操作:
fdisk /dev/sdb --- 对磁盘进行分区命令
Command action
d delete a partition --- 删除一个分区
l list known partition types --- 列出分区类型(8e Linux LVM)
m print this menu --- 输出帮助信息
n add a new partition --- 创建新的分区
p print the partition table --- 输出分区信息
q quit without saving changes --- 不做任何改变进行退出
t change a partition's system id --- 改变分区类型
w write table to disk and exit --- 保存分区配置
创建主分区操作
Command (m for help): n 创建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p 指定创建的是主分区
Partition number (1-4, default 1): 1 指定分区号码
First sector (2048-20479, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20479, default 20479): +5M 指定分区大小
Partition 1 of type Linux and of size 5 MiB is set
创建扩展分区
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e 指定创建扩展分区
Partition number (2-4, default 2):
First sector (12288-20479, default 12288):
Using default value 12288
Last sector, +sectors or +size{K,M,G} (12288-20479, default 20479): 不输大小表示剩余全部空间
Using default value 20479
Partition 2 of type Extended and of size 4 MiB is set
创建逻辑分区:
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l 需要首先创建好扩展分区
Adding logical partition 5
First sector (14336-20479, default 14336):
Using default value 14336
Last sector, +sectors or +size{K,M,G} (14336-20479, default 20479):
Using default value 20479
Partition 5 of type Linux and of size 3 MiB is set
输出分区信息
Command (m for help): p
Disk /dev/sdb: 10 MB, 10485760 bytes, 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x43a2def7
Device Boot Start End Blocks Id System
/dev/sdb1 2048 12287 5120 83 Linux
/dev/sdb2 12288 20479 4096 5 Extended
/dev/sdb5 14336 20479 3072 83 Linux
调整分区类型
Command (m for help): t
Partition number (1,2, default 2): 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
删除分区操作
Command (m for help): d
Partition number (1,2,5, default 5): 5
Partition 5 is deleted
方法二: parted (大于2T)
当一个分区大小超过2T时, 不能再使用MBR引导记录, 使用GPT来识别大容量磁盘
parted /dev/sdd
分区方法:
mklabel(创建分区表 MRB-msdos/gpt)
create a new disklabel (partition table) mklabel gpt
mkpart (创建新的分区)
make a partition mkpart primary 0 20M
print(显示分区表信息)
display the partition table
rm(删除指定分区信息)
delete partition NUMBER
quit(退出分区界面)
exit program
修改分区引导记录信息
(parted) mklabel gpt
Warning: Partition(s) on /dev/sdd are being used.
Ignore/Cancel? Ignore
创建分区信息
(parted) mkpart primary 0 2100G
删除分区方法
rm 分区号码
03. 磁盘体系结构-第四层: 创建文件系统(格式化处理)
文件系统有什么: 采用相应机制存储和管理数据
centos5: ext2 ext3
centos6: ext4
centos7: xfs
特点: 在数据库服务器中可以更高效存储数据信息
在格式化磁盘时, 效率更高(大的磁盘)
nfs 网络文件系统 分布式文件系统
在格式化前需要执行以下命令
partprobe /dev/sdb --- 告知内核系统已经对磁盘进行了分区
做格式化处理:
mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb1 --- 无法识别小分区信息(10M以下)
mkfs -t xfs /dev/sdb1
04. 磁盘体系结构-第五层: 进行磁盘挂载
mount /dev/sdb1 /mnt
05. 如何实现自动挂载分区(/dev/sdc1 /mnt_100M)
mount /dev/sdc1 /mnt_100M
方法一: 将挂载命令放入到/etc/rc.local文件中
vim /etc/rc.local
mount /dev/sdc1 /mnt_100M
说明: 需要确保rc.local目录具有执行权限
[root@oldboy-xiaodao.com.cn ~]# ll -d /etc/rc.local
lrwxrwxrwx. 1 root root 13 Dec 29 16:33 /etc/rc.local -> rc.d/rc.local
[root@oldboy-xiaodao.com.cn ~]# ll -d /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 499 Jan 29 11:33 /etc/rc.d/rc.local
方法二: 利用fstab文件实现分区自动挂载
vim /etc/fstab
设备文件 挂载点目录 文件系统类型 挂载的参数信息 是否进行备份 是否检查磁盘
/dev/sdc1 /mnt_100M xfs defaults 0 0
06. 企业案例: tomcat(网站服务)--java语言编写的程序, 运行过程中比较消耗内存
临时需要添加内存 --- 将硬盘空间临时充当内存使用 -- swap分区
如何调正swap分区大小
第一个里程: 从磁盘中取出一定空间重当内存使用
[root@oldboy-xiaodao.com.cn ~]# dd if=/dev/zero of=/tmp/1G bs=100M count=10
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB) copied, 25.9294 s, 40.4 MB/s
第二个里程: 定义文件可以被swap分区使用
[root@oldboy-xiaodao.com.cn ~]# ll /tmp/1G -h
-rw-r--r-- 1 root root 1000M Jan 29 11:54 /tmp/1G
[root@oldboy-xiaodao.com.cn ~]# file /tmp/1G
/tmp/1G: data
[root@oldboy-xiaodao.com.cn ~]# mkswap /tmp/1G
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=a10ad568-60c9-4311-9e09-e6db844d6130
[root@oldboy-xiaodao.com.cn ~]# file /tmp/1G
/tmp/1G: Linux/i386 swap file (new style), version 1 (4K pages), size 255999 pages, no label, UUID=a10ad568-60c9-4311-9e09-e6db844d6130
第三个里程: 让swap分区可以加载swap文件
[root@oldboy-xiaodao.com.cn ~]# swapon /tmp/1G
swapon: /tmp/1G: insecure permissions 0644, 0600 suggested.
[root@oldboy-xiaodao.com.cn ~]# free -h
total used free shared buff/cache available
Mem: 1.9G 99M 734M 9.5M 1.1G 1.7G
Swap: 2.0G 0B 2.0G
将swap空间进行减小
[root@oldboy-xiaodao.com.cn ~]# swapoff /tmp/1G
[root@oldboy-xiaodao.com.cn ~]# free -h
total used free shared buff/cache available
Mem: 1.9G 98M 734M 9.5M 1.1G 1.7G
Swap: 1.0G 0B 1.0G