1.磁盘知识体系结构
第一个层次:磁盘相关物理知识 内部结构 外部结构 读写数据原理
第二个层次:磁盘阵列知识 磁盘弹性扩展知识
阵列:将多块磁盘整合为一块
(1)可以存储更大容量数据
(2)提升数据存储效率
(3)提升数据存储安全性
第三个层次:磁盘分区表概念,分区命令使用 fdisk parted
第四个层次:系统格式化操作 文件系统相关概念
第五个层次:磁盘管理相关知识 挂载操作
2.磁盘内部外部结构
外部结构:看得见的部分
接口类型:SATA<SXSI<SAS
转速信息:5400/分钟<7200/分钟<10000转/分钟<12000转/分钟
盘片部分:存储数据信息,可以有多块盘片
磁头部分:读写数据信息,可以有多个磁头 (几个盘片就有几个磁头)
磁头停泊区:关机之后磁头放在磁头停泊区
磁盘主轴:决定磁盘转速
磁盘容量:1024 科学计量换算 1000 企业生产换算
内部结构:
磁盘的磁道:每个磁道用于存储数据信息,并且每个磁盘存储数据容量是相同的
磁盘扇区:将磁盘切分为多个部分,存储数据最小空间单位称为扇区
扇区个数进行分区 1024 个扇区 1M (最小单位)
磁盘柱面:磁盘有多个磁头时,是按照柱面来进行读取数据
数据读取原理:二进制方式(凸起的地方代表数字1(磁化为1),凹的地方代表数字0)
碎片整理就是依据机械硬盘工作原理对硬盘读写数据进行性能优化
3.磁盘阵列配置方法 raid
进行磁盘阵列配置:
配置阵列级别:RAID0 RAID1 RAID5 RAID10
RAID0:可以提高数据存储效率 游戏赛事 WCG 无法保证数据安全性
RAID1:可以提高数据的安全性 存储阵列 保证数据安全 浪费磁盘 无法提升性能
RAID5: 可以提高数据存储效率 保证数据安全性 只浪费(1/3)
RAID10:可以提高数据存储效率 保证数据安全性 磁盘空间浪费会多
4.磁盘弹性扩容配置 LVM
应用场景:数据库数据存储操作
数据库:存储数据仓库 表形式存储数据 —data.sql 文件总的数据文件
/dev/sdc1分区-- /data 10G <----date.sql 10G
90G
PE:物理区域
PV:物理卷(逻辑磁盘)
VG:卷组
LV:逻辑卷
创建分区:
[root@naWang ~]#fdisk -l
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8c5947aa
对分好的区进行PV创建操作(利用LVM逻辑卷管理执行相关命令)
[root@naWang ~]#pvcreate /dev/sdb1 /dev/sdb2
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb1.
WARNING: ext4 signature detected on /dev/sdb2 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb2.
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
用pvs或者pvdisplay查看详细信息
逻辑管理创建VG过程
[root@naWang ~]#vgcreate vg1 /dev/sdb1 /dev/sdb2
Volume group "vg1" successfully created ———————— /dev/sdb1 已创建完成PV物理卷
vgdisplay ---查看所有卷组的详细信息
逻辑管理创建LV过程
[root@naWang ~]#lvcreate -L 200M -n lv1 vg1
Logical volume "lv1" created.
-L ----参数后跟的是你要设定的逻辑卷大小,这个大小必须是你设定的PE值的整数倍,如果不是它会给你分一个比你设定大一点的空间,也就是向上取整数倍空间。弊端就是有可能用不完vg里面的空间
先用mkfs命令对创建的卷组进行格式化操作:
[root@naWang ~]#mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
创建一个空目录,再把创建好的逻辑卷挂载上就可以使用了
[root@naWang ~]#mkdir /disk1
[root@naWang ~]#mount /dev/vg1/lv1 /disk1
[root@naWang ~]#df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 844M 0 844M 0% /dev
tmpfs 861M 4.0K 861M 1% /dev/shm
tmpfs 861M 11M 850M 2% /run
tmpfs 861M 0 861M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 9.8G 7.3G 58% /
/dev/sda1 1014M 239M 776M 24% /boot
tmpfs 173M 12K 173M 1% /run/user/42
tmpfs 173M 0 173M 0% /run/user/0
/dev/mapper/vg1-lv1 190M 1.6M 175M 1% /disk1
说明:如果想实现开机自动挂载,可以后续编写/etc/rc.local和/etc/fstab 文件信息
LVM逻辑实战调整过程
磁盘创建逻辑卷扩容过程
使用lvextend命令来对逻辑卷进行扩容:
[root@naWang ~]#vgs ---查看剩余空间是否充足
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 2 1 0 wz--n- 19.99g <19.80g
[root@naWang ~]#lvextend -L +100M /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 300.00 MiB (75 extents).
Logical volume vg1/lv1 successfully resized.
[root@naWang ~]#lvscan
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/root' [<17.00 GiB] inherit
ACTIVE '/dev/vg1/lv1' [300.00 MiB] inherit
[root@naWang ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-ao---- 300.00m
需要注意此时文件系统并没有增大,需要执行命令让文件系统识别已经扩容的空间
[root@naWang ~]#df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 190M 1.6M 175M 1% /disk1 ---未识别扩容空间
[root@naWang ~]#resize2fs -f /dev/mapper/vg1-lv1 ---加载识别扩容空间
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vg1-lv1 is mounted on /disk1; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/mapper/vg1-lv1 is now 307200 blocks long.
[root@naWang ~]#df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 287M 2.1M 267M 1% /disk1 ---已识别扩容空间
5.磁盘分区操作过程
磁盘分区方案介绍:
/boot 分区 200M
swap 分区 1~8G 内存1.5
/ 分区 剩余空间 50~200G 系统数据/服务程序数据
/data 分区 剩余空间 存储
磁盘分区方法原则:
磁盘分区表:64字节 每16个字节表示一个分区信息----主分区 4个分区
取出其中16个字节可以进行扩展分区设置 只能有一个 扩展分区下面可以划分更多逻辑分区
PS:主分区可以直接使用 扩展分区不可以直接使用
四个分区 一个扩展分区(多个逻辑分区)
磁盘分区的方法步骤:
fdisk:centos6---不能划分2T容量以上分区
centos7---能划分2T容量以上分区
parted:可以划分2T容量以上分区
2T以下分区划分:
第一个历程:指定进行分区设备文件
fdisk /dev/sdb
第二个历程:根据需求进行分区
分区命令信息:
命令操作
c ---设置分区模式dos(小于2T)
d ---删除已经分好的区
g ---设置分区模式gpt(大于或等于2T)
l ---列表显示可用分区类型
m ---获取帮助
o ---创建一个新的dos分区表
q ---退出分区操作并且不保存
p ---输出已经分区的信息
t ---修改分区类型信息
w ---保存对分区的设定
6.磁盘格式化操作
创建文件系统 – 产生inode block
如何进行格式化操作
mkfs -t xfs /dev/sdc1
mkfs.xfs -f /dev/sdc1 ---强制在已有文件系统文件中进行重新格式化操作
7.磁盘挂载操作
mount 参数配置
默认挂载参数信息:
rw(默认) ---挂载之后的挂载点目录,具有读写能力
ro ---挂载之后的挂载点目录,只具有读能力
suid(默认) ---挂载之后的挂载点目录中,可以让setuid权限文件生效
nosuid ---挂载之后的挂载点目录中,可以让setuid权限文件失效
dev(默认)
nodev
exec(默认) ---挂载之后的挂载点目录中,可以让具有执行权限文件生效
noexec ---挂载之后的挂载点目录中,可以让具有执行权限文件失效
auto(默认) ---允许挂载配置信息进行自动挂载
noauto ---禁止挂载配置信息进行自动挂载
user ---允许普通用户进行挂载操作
nouser ---禁止普通用户进行挂载操作
async(默认) ---异步方式存储数据
sync ---同步方式存储数据
当挂载点目录无法卸载时,可以进行强制卸载
umount -lf /mnt
-l —不用从目录中切换出来,也可以进行卸载
-f —强制卸载目录信息
——————————————————————————————————
一个挂载点无法卸载的原因:
1)此时正在挂载目录中,是无法直接卸载
2)有其他用户或者程序进程,正在使用加载挂载目录中的数据信息
——————————————————————————————————
8.磁盘交换分区如何扩容
内存 硬盘使用情况需要实时关注
内存 存储一些数据信息和服务进程有关 (内存溢出导致)
临时将磁盘空间交换给内存使用
交换分区临时扩容步骤:
第一个步骤:创建系统交换分区使用文件
dd if=/dev/zero of=/tmp/1G bs=100M cout=10
第二个步骤:设置文件被交换分区所使用
mkswap /tmp/1G
第三个步骤:文件划到交换分区使之生效
swapon /tmp/1G ---加载交换空间
swpoff /tmp/1G ---卸载交换空间