Linux系统磁盘概念
磁盘的结构体系
1. 磁盘的物理结构(外部结构 内部结构) 工作原理
2. 磁盘阵列说明 (raid0 raid1 raid5 raid10 raid01)
磁盘阵列如何配置
配置LVM
3. 磁盘分区概念
给小容量磁盘分区:小于2T fdisk
给大容量磁盘分区:大于2T parted
4. 磁盘格式化(创建文件系统)
5.磁盘维护管理(使用、挂载使用)
磁盘的外部结构
组成部分
a. 磁盘主轴 决定磁盘转速
家用 72000 rpm 5400 rpm
企业 15k rpm 10krpm
b. 磁盘盘片 用于存储数据
c. 磁盘的磁头 用于读取数据
d. 磁盘接口 用于连接主板 阵列卡
磁盘的内部结构
a.磁盘(Disk)
b.磁头(Head)
作用:用来写入和读取数据
特点:盘面数量等于磁头数量
**工作原理: 采用径向运动读写数据**
c. 磁道(Track)
作用:用来存储用户数据
特点: 有多个同心圆组成
存储计数: 最外面同心圆 为0磁道
工作原理:磁盘默认按磁道寻找数据
扇区(Sector)
作用说明:用来存储用户数据
特点说明:磁盘存储最小单位
存储计数:默认磁盘扇区从1扇区开始,扇区大小512字节
系统存储最小单位是block
柱面(Cylinder)
作用说明: 用来存储用户数据
特点: 不同盘面上相同磁道组成(圆柱体)
工作原理: 磁盘默认按照柱面进行读写
单元块(Units)
作用说明:用来存储用户数据
特点说明: 表示单个柱面大小
磁盘层次结构--磁盘阵列raid
阵列的配置方法:
- raid 0 存储数据效率高 存储安全性低
- raid 1 存储数据效率低 存储安全性高
- raid 5 存储数据效率较高 存储安全性较高
- raid 01 效率+备份
- raid 10 备份+效率
磁盘分区预备知识
a. 系统启动引导记录--
-MBR引导记录 用于引导磁盘空间小于2T
-GPT引导记录 用于引导磁盘空间大于2T
- (1)磁盘分区方法
- (2)实现挂载使用(实现开机自动挂载 /etc/fstab / etc/rc.local)
- (3)swap分区如何调整大小
情况一: 磁盘分区实践--磁盘小于2T
fdisk
第一个里程: 准备磁盘环境
准备了一块新的10G硬盘
第二个里程: 在系统中检查是否识别到了新的硬盘
检查是否有新的磁盘存储文件
# ll /dev/sdb
brw-rw----. 1 root disk 8, 16 Apr 28 08:54 /dev/sdb
第三个里程: 对磁盘进行分区处理(fdisk-- 进行分区处理 查看分区信息)
fdisk -l --- 查看分区信息
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x6c918c6d.
Command (m for help): 可以对磁盘进行分区了
Command action
d delete a partition *****
删除分区
g create a new empty GPT partition table
创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区)
l list known partition types
列出可以分区的类型???
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
改变分区的系统id==改变分区类型(LVM 增加swap分区大小)
u change display/entry units
改变分区的方式 是否按照扇区进行划分
w write table to disk and exit *****
将分区的信息写入分区表并退出==保存分区信息并退出
开始分区:
a 规划分4个主分区 每个分区1G
分区操作过程
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-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +1G
Partition 1 of type Linux and of size 1 GiB is set
分区操作检查:
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x3069f1dd
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
/dev/sdb4 6293504 8390655 1048576 83 Linux
Command (m for help): n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.
b 规划分3个主分区 1个扩展分区 每个主分区1G 剩余都给扩展分区
删除分区
Command (m for help): d
Partition number (1-4, default 4): 1
Partition 1 is deleted
创建逻辑分区
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x3069f1dd
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
/dev/sdb4 6293504 20971519 7339008 5 Extended 有了扩展分区才能逻辑分区
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (6295552-20971519, default 6295552):
Using default value 6295552
Last sector, +sectors or +size{K,M,G} (6295552-20971519, default 20971519): +1G
Partition 5 of type Linux and of size 1 GiB is set
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x3069f1dd
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 83 Linux
/dev/sdb3 4196352 6293503 1048576 83 Linux
/dev/sdb4 6293504 20971519 7339008 5 Extended
/dev/sdb5 6295552 8392703 1048576 83 Linux
需求: 划分2个主分区 划分2个逻辑分区
sdb1 2G
sdb2 2G
sdb5 3G
sdb6 1G
第四个里程: 保存退出,让系统可以加载识别分区信息
让系统可以加载识别分区文件
partprobe /dev/sdb
parted
情况二: 磁盘分区实践--磁盘大于2T
第一个里程: 准备磁盘环境
虚拟主机中添加一块3T硬盘
第二个里程: 使用parted命令进行分区
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
创建一个分区表 (默认为mbr)
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found
partitions, or a particular partition
显示分区信息
mkpart PART-TYPE [FS-TYPE] START END make a partition
创建一个分区
quit exit program
退出分区状态
rm NUMBER delete partition NUMBER
删除分区
修改磁盘分区类型: mklabel gpt
分区方法: mkpart primary 0 2100G
第三个里程: 加载磁盘分区
partprobe /dev/sdc
-
磁盘层次结构--格式化操作(创建文件系统)
mkfs.xfs /dev/sdb1
mkfs -t xfs /dev/sdb2创建文件系统: 磁盘分区存储数据的方式
ext3/4 centos6
xfs centos7 格式效率较高 数据存储效率提升(数据库服务器)\# mkfs.xfs /dev/sdb2 meta-data=/dev/sdb2 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
-
磁盘层次结构--磁盘挂载应用
mount /dev/sdb1 /mount01 mount /dev/sdb2 /mount02
检查确认:
# df -h /dev/sdb1 1014M 33M 982M 4% /mount01 /dev/sdb2 1014M 33M 982M 4% /mount02
如何实现开机自动挂载:
方法一: 将挂载命令放入/etc/rc.local# tail -2 /etc/rc.local mount /dev/sdb1 /mount01 mount /dev/sdb2 /mount02
系统开机加载rc.local流程:
加载/etc/rc.local --> /etc/rc.d/rc.local --> 以绝对路径方式执行
/etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local方法二: 在/etc/fstab文件中进行设置
UUID=e2fc8646-2b36-47cc-a35a-8c13208f4d0b / xfs defaults 0 0
UUID=34fc45ba-c38c-42bc-a120-90f9d5dd2382 /boot xfs defaults 0 0
UUID=62100743-6f8a-4f83-a37d-e2088c4830e2 swap swap defaults 0 0
挂载磁盘文件(存储设备) 挂载点 指定文件系统类型 挂载的参数 是否备份磁盘 是否检查磁盘
mount 挂载的磁盘文件 挂载点 -
企业磁盘常见问题:
-
磁盘满的情况 No space left on device
a 存储的数据过多了
模拟磁盘空间不足
dd if=/dev/zero of=/tmp/kang.txt bs=10M count=100
block存储空间不足了
解决方式:
a 删除没用的数据
b 找出大的没用的数据find / -type f -size +xxx du -sh /etc/sysconfig/network-scripts/*|sort -h
补充: 按照数值排序命令
# cat num.txt |sort -n # 1 # 10 # 11 # 12 # 2 # 3 # 6 # 9
# cat num.txt |sort -n -k2 # 1 # 2 # 3 # 6 # 9 # 10 # 11 # 12
b 存储的数据过多了
inode存储空间不足了: 出现了大量小文件
-
-
如何调整swap分区大小
第一个历程: 将磁盘分出一部分空间给swap分区使用dd if=/dev/zero of=/tmp/1G bs=100M count=10
第二个历程: 将指定磁盘空间作为swap空间使用
mkswap /tmp/1G Setting up swapspace version 1, size = 1023996 KiB no label, UUID=6dd70684-dec2-48cf-8fd9-f311548bbb4f
第三个历程: 加载使用swap空间
swapon /tmp/1G swapon: /tmp/1G: insecure permissions 0644, 0600 suggested. # free -h total used free shared buff/cache available Mem: 1.9G 225M 575M 9.6M 1.2G 1.5G Swap: 2.0G 0B 2.0G # swapoff /tmp/1G # free -h total used free shared buff/cache available Mem: 1.9G 224M 576M 9.6M 1.2G 1.5G Swap: 1.0G 0B 1.0G # rm /tmp/1G -f
-
磁盘知识总结
-
掌握磁盘体系结果
-
磁盘的内部和外部结构(磁头 磁道 扇区 柱面) 运维---存储服务
-
磁盘分区的方法
fdisk 划分小于2T的磁盘
parted 划分大于2T的磁盘 -
如何实现格式化和自动挂载 存储服务nfs
/etc/rc.local
/etc/fstab -
磁盘分区满的原因 No space left on device
a block占用过多了
df -h
解决方式: 删除大的没用的数据
如何找到大的文件
find / -type f -size +500M|xargs rm
du -sh /etc/sysconfigb inode占用过多了
df -i
解决方式: 删除大量的没用的小文件 -
如何调整swap空间大小 --- tomcat(java) 512M
dd
mkswap
swapon/off
-