磁盘是存放数据的地方,这期带大家了解磁盘,磁盘分类,转数,选购方式,raid形式;后面讲到了mbr格式,gpt格式分别用fdisk和parted软件进行分区,分区后挂在使用;最后介绍了关于磁盘的使用案例,比如磁盘满后怎么解决,如何查找系统中的大文件,sqap内存充当临时内存等。
1.磁盘结构
磁盘分类:
机械磁盘(机械硬盘) 像个砖头,在台式机里,3.5英寸大小,通过机械运动达到读写数据的作用
固态磁盘 是芯片式的
NVME磁盘 M.2磁盘 PCI-E 类似显卡 像内存条
接口类型及转速决定了读写速度
IDE接口 已经淘汰了 很多针,有插电源的地方
SCSI接口 笔记本 台式机 不常用
STAT接口 笔记本 台式机 左边数据线右边电源线 中间有豁口 7200转/10k转
SAS接口 多出来一块 服务器标配 7.2k 10k 15k
15k/分钟最大储存 900G(能达到15k转) 600G(用的居多,600*8或者600*4) 300G
做备份的服务器,只管空间大,2T 4T*8
磁盘大小:3.5英寸 2.5英寸(笔记本磁盘,可以多插几个)
PCI-E 白色插槽,可以插外接独立声卡
fdisk -l 可以查看磁盘扇区总扇区数乘以一个扇区磁盘大小就是磁盘大小,磁盘以1000为1个单位,与1024不一样
raid逻辑的将磁盘组合在一起,可以增加容量,也可以提高性能(注重安全速度就慢,注重速度安全性就低)
2.常用的raid级别及应用场景
服务器磁盘先连接到raid卡上,再连接主板
raid0 最高的存储性能 磁盘容量不浪费,读写很快
要制作raid0 至少需要一块磁盘
任何一块硬盘损坏,所有数据无法使用
raid1 可以损失一半的数据容量
raid1至少需要两块磁盘,需要偶数数量的磁盘
不能提示存储性能,但会更安全,理论上写性能和单盘相差不大
raid5 可以损失一块盘的容量
安全性最多可以损坏一块磁盘,也可以用热备盘,这样可以最多坏两个了
写入性能不好,读取速度ok
raid10 先将两块盘组成raid1,再将raid1组成raid0
可以损坏所有硬盘一半的容量,也看损失的是不是一样的数据
读写很快
raid01就反过来,raid01可以损失一边的
企业中用0和5最多
3.磁盘分区
MBR格式
一个磁盘最多分四个,扩展分区最多一个,基于扩展分区划分逻辑分区
三个主分区+一个扩展分区+逻辑分区第五个开始
主分区:直接对磁盘进行格式化的分区,可以直接存储进去,速度也是最快
逻辑分区:扩展分区无法使用,基于逻辑分区划分逻辑分区。正常放数据,但是速度会慢
GPT格式
最多支持128个主分区
MBR格式和GPT格式分区区别
MBR格式对于小于2T的磁盘进行分区 使用fdisk分区
GPT格式对于大于2T的磁盘进行分区 使用parted分区
磁盘分区的设备名称
第一块磁盘:sda
第二块磁盘:sdb
......
第一块磁盘的第一个主分区:sda1
第一块磁盘的第二个主分区:sda2
第一块磁盘的第二个主分区:sda3
第一块磁盘的第一个扩展分区:sda4
第一块磁盘的第一个逻辑分区:ada5
4.磁盘挂载模拟流程
Linux系统的硬件必须通过挂载的方式才可以访问
默认无法读取硬件,类似于没有窗户没有门的监狱 进不去也出不来
创建目录挂载,只是创建了目录,给硬件提供一个入口
示例1:挂载cdrom
第一步:把镜像文件插入到DVD(装系统已经插进去了)
第二步:查看dev下的cdrom
第三步:直接将cdrom挂载到临时的挂载点
[root@web01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only #提示被保护,不能写
[root@web01 ~]#
查看挂载信息
[root@web01 Packages]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 17G 11% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /mnt
[root@web01 Packages]#
第四步:通过mnt进入cdrom查看里面的内容
第五步:不想用了卸载,记得先出来这个门
[root@web01 Packages]# umount /mnt/
umount: /mnt: target is busy.#目标忙,因为在门里
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@web01 Packages]# cd
[root@web01 ~]# umount /mnt/
[root@web01 ~]# ll /mnt/
total 0 #卸载成功
[root@web01 ~]#
注意:挂载的目录下面会有内容隐藏,卸载后会再显示,不影响使用,但是最好用新目录
5.磁盘挂载
第一步:虚拟机右键设置,添加磁盘,设置大小512MB
第二步:添加完成后重启系统
第三步:使用fdisk -l查看
[root@web01 ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x000eee9b
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 2508799 1048576 82 Linux swap / Solaris
/dev/sda3 2508800 41943039 19717120 83 Linux
Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 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
第四步:对磁盘进行分区,不分区不让挂载
[root@web01 ~]# 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 0x21168715.
Command (m for help): m
Command action
a toggle a bootable flag #标签,不需要
b edit bsd disklabel #标签,不需要
c toggle the dos compatibility flag #不需要
d delete a partition #删除分区,需要
g create a new empty GPT partition table #不需要
G create an IRIX (SGI) partition table #不需要
l list known partition types #列出详细信息
m print this menu #显示帮助信息
n add a new partition #创建分区
o create a new empty DOS partition table #不需要
p print the partition table #打印分区信息
q quit without saving changes #退出不保存
s create a new empty Sun disklabel #不需要
t change a partition's system id #改变分区格式id
u change display/entry units #不需要
v verify the partition table #不需要
w write table to disk and exit #保存并退出
x extra functionality (experts only) #不需要
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #选择创建分区 p默认位主分区
Partition number (1-4, default 1): 1 #主分区的编号
First sector (2048-1048575, default 2048): #直接回车默认开始的扇区
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575, default 1048575): +100M
Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): p #查看分区表
Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 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 #MBR格式
Disk identifier: 0x21168715
Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
Command (m for help):
省略创建三个主分区
......
删除第四个主分区
Command (m for help): d
Partition number (1-4, default 4):
Partition 4 is deleted
Command (m for help):
给第四个创建扩展分区
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e):
Using default response e
Selected partition 4
First sector (616448-1048575, default 616448):
Using default value 616448
Last sector, +sectors or +size{K,M,G} (616448-1048575, default 1048575): +100M
Partition 4 of type Extended and of size 100 MiB is set
Command (m for help): p
Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 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: 0x21168715
Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
/dev/sdb2 206848 411647 102400 83 Linux
/dev/sdb3 411648 616447 102400 83 Linux
/dev/sdb4 616448 821247 102400 5 Extended
Command (m for help):
[root@web01 ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x000eee9b
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 2508799 1048576 82 Linux swap / Solaris
/dev/sda3 2508800 41943039 19717120 83 Linux
Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 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: 0x21168715
Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
/dev/sdb2 206848 411647 102400 83 Linux
/dev/sdb3 411648 616447 102400 83 Linux
/dev/sdb4 616448 821247 102400 5 Extended
第五步:格式化磁盘,使用mkfs.xfs
[root@web01 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
第六步:挂在使用磁盘
[root@web01 ~]# mount /dev/sdb1 /mnt
[root@VMware-koten mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 17G 11% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 97M 5.3M 92M 6% /mnt
6.常用的磁盘挂载方式
一,插入磁盘(虚拟机添加磁盘)
二,磁盘格式化,一般不用分区,不能格式化用-f强制格式化
[root@web01 ~]#mkfs.xfs /dev/sdc
meta-data=/dev/sdc isize=512 agcount=4, agsize=131072000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288000, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=256000, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
三,磁盘挂载
[root@web01 ~]#mkdir /data
[root@web01 ~]#mount /dev/sdc /data/
[root@web01 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 19G 1.9G 17G 10% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 97M 5.3M 92M 6% /mnt
/dev/sdc 2.0T 33M 2.0T 1% /data
7.开机自动挂载
加入/etc/fstab 开机自动挂载硬件
[root@web01 ~]#blkid
/dev/sda1: UUID="d668ff1c-a7da-4b2e-b534-8582e7261529" TYPE="xfs"
/dev/sda2: UUID="b2193101-867d-415d-b905-491d531af8e0" TYPE="swap"
/dev/sda3: UUID="43e725b7-4493-4c94-9646-7e90df49ec1e" TYPE="xfs"
/dev/sdb1: UUID="ef6f9c31-de6c-40a0-b7a7-a12206c85ba9" TYPE="xfs"
/dev/sdc: UUID="00a5d78a-f5c0-491a-9ccf-2a93f625b918" TYPE="xfs"
#根据blkid信息填写fstab
[root@web01 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Feb 22 21:44:17 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=43e725b7-4493-4c94-9646-7e90df49ec1e / xfs defaults 0 0
UUID=d668ff1c-a7da-4b2e-b534-8582e7261529 /boot xfs defaults 0 0
UUID=b2193101-867d-415d-b905-491d531af8e0 swap swap defaults 0 0
/dev/sdb /mnt xfs defaults 0 0
8.大于2T的磁盘进行分区
大于2T的磁盘需要将格式修改为GPT格式
使用命令parted进行分区 直接生效
一,在虚拟机添加一块2T的磁盘
二,重启虚拟机
三,查看是否添加成功
fdisk -l
四,parted进行分区
交互式
[root@web01 ~]#parted /dev/sdc
GNU Parted 3.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of
commands.
(parted) help
align-check TYPE N check
partition N for TYPE(min|opt) alignment
help [COMMAND] print
general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a
new disklabel (partition table) #创建新的格式
mkpart PART-TYPE [FS-TYPE] START END make a
partition #创建分区
name NUMBER NAME name
partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display #显示分区表
the partition table, available devices, free
space, all found partitions, or a particular
partition
quit exit #退出
program
rescue START END rescue a
lost partition near START and END
resizepart NUMBER END resize
partition NUMBER
rm NUMBER delete #删除分区
partition NUMBER
select DEVICE choose
the device to edit
disk_set FLAG STATE change
the FLAG on selected device
disk_toggle [FLAG] toggle
the state of FLAG on selected device
set NUMBER FLAG STATE change
the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle
the state of FLAG on partition NUMBER
unit UNIT set the
default unit to UNIT
version display
the version number and copyright information
of GNU Parted
(parted)3
(parted) mklabel gpt #将分区表格式更改为gpt
Warning: Partition(s) on /dev/sdc are being used.
Ignore/Cancel? I
Warning: The existing disk label on /dev/sdc will be
destroyed and all data on this disk will be lost. Do
you want to continue?
Yes/No? y
(parted) mkpart #分区命令
Partition name? []? primary #分区名称
File system type? [ext2]? xfs #分区类型
Start? 0 #从哪里开始
End? 100G #大小
Warning: The resulting partition is not properly
aligned for best performance.
Ignore/Cancel? I #输入I,忽视警告
(parted) print #打印分区表
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 100GB 100GB primary
(parted)
非交互式
(parted) mkpart primary xfs 100G 200G
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 100GB 100GB primary
2 100GB 200GB 100GB primary
(parted)
不需要进mkpartd命令进行分区
不进入mkpartd命令进行分区
[root@web01 ~]#parted /dev/sdc mkpart primary xfs 200G 500G
Information: You may need to update /etc/fstab.
[root@web01 ~]#parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 100GB 100GB primary
2 100GB 200GB 100GB primary
3 200GB 500GB 300GB primary
#删除分区
[root@web01 ~]#parted /dev/sdc rm 3
Information: You may need to update /etc/fstab.
[root@web01 ~]#parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 100GB 100GB primary
2 100GB 200GB 100GB primary
格式化分区
[root@web01 ~]#mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=6103515 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=24414058, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=11920, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
挂在使用
[root@web01 ~]#mount /dev/sdc1 /data
[root@web01 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 19G 1.9G 17G 11% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 97M 5.3M 92M 6% /mnt
/dev/sdc1 94G 33M 94G 1% /data
9.磁盘案例
案例1:企业中程序导致内存不够用
如果内存满则系统会自动杀死占用内存最高的进程,来保护系统正常运行
什么原因导致内存满
1、大量的用户访问我们的服务器(正常情况)需要我们添加内存
2、由于程序导致内存满,而不是大量用户访问导致(找开发解决问题)
3、由于网络的波动导致内存满,需要使用swap解决
4、学习中,可能需要swap临时充当内存使用
5、公司内部业务(测试服务器),需要使用swap临时解决
swap作用:当内存不够用时,磁盘分区临时充当内存使用
查看swap分区,使用free -h
[root@web01 ~]#free -h
total used free shared buff/cache available
Mem: 1.9G 218M 1.6G 9.5M 108M 1.6G
Swap: 1.0G 0B 1.0G
[root@web01 ~]#
创建swap分区:
1、安装系统划分的分区
2、可以安装系统后创建
第一步:生成一个200M的空间,把200M的空间当作swap空间
dd if=/dev/zero of=/tmp/200m bs=1M count=200
[root@web01 ~]#dd if=/dev/zero of=/tmp/200m bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 1.13911 s, 184 MB/s
[root@web01 ~]#
第二步:格式化为swap分区格式
mkswap /tmp/200m
[root@web01 ~]#mkswap /tmp/200m
Setting up swapspace version 1, size = 204796 KiB
no label, UUID=9429e531-a4c5-4e34-b238-57a1efcfc2c2
[root@web01 ~]#
第三步:挂载使用swapon /tmp/200m回车
[root@web01 ~]#swapon /tmp/200m
swapon: /tmp/200m: insecure permissions 0644, 0600 suggested.
第四步:free -h
[root@web01 ~]#free -h
total used free shared buff/cache available
Mem: 1.9G 265M 1.0G 9.5M 678M 1.5G
Swap: 1.2G 0B 1.2G
查看swap分区的组成
swspon -s
[root@web01 ~]#swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 1048572 0 -2
/tmp/200m file 204796 0 -3
重启会掉,需要开机自动挂载
卸载swap
[root@web01 ~]#swapoff /tmp/200m
[root@web01 ~]#free -h
total used free shared buff/cache available
Mem: 1.9G 265M 1.0G 9.5M 678M 1.5G
Swap: 1.0G 0B 1.0G
案例2:找出系统中小文件多的目录备份或删除
df -i 查看inode使用信息
[root@web01 ~]#df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 250790 410 250380 1% /dev
tmpfs 253483 1 253482 1% /dev/shm
tmpfs 253483 738 252745 1% /run
tmpfs 253483 16 253467 1% /sys/fs/cgroup
/dev/sda3 9858560 60425 9798135 1% /
/dev/sda1 102400 326 102074 1% /boot
tmpfs 253483 1 253482 1% /run/user/0
/dev/sdb1 51200 3 51197 1% /mnt
/dev/sdc1 48828096 3 48828093 1% /data
[root@web01 ~]#find /-type d -size +70k
标签:管理,分区,dev,web01,Linux,磁盘,512,root
From: https://blog.csdn.net/2301_76966984/article/details/143910110