磁盘管理

磁盘管理

一、磁盘相关知识介绍

​ 作用: 实现数据的持久化存储

​ 块设备文件

​ 磁盘存储数据的最小单位:

​ 数据块 block 4k

​ 随机

1、磁盘表示方法

/dev/sdX     

#  ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Dec 21 09:03 /dev/sda

sd: 磁盘接口   scsi, sata, sas 
	scsi:  640M/s 
	SATA:   6G/s
	SAS:    6G/s 
	
	
机械硬盘  
	转速 	以分钟为单位  rpm 
    	7200rpm 
		
固态硬盘   SSD

2、磁盘分区表示方法

分区类型:
	主分区
	扩展分区
		主分区 + 扩展分区 <= 4
		扩展分区最多1个
	逻辑分区
	
/dev/sdb7		
	sdb硬盘上第3个逻辑分区 

3、文件系统 file system

		windows的文件系统: 

​				NTFS 

​				FAT32

​						支持的最大单个文件大小为4G 



​		Linux的文件系统: 

​			ext4,  xfs,  swap,  fat32

4、挂载

​ 将块设备文件中的文件系统挂载到空目录,通过操作空目录来实现操作磁盘中的文件

二、磁盘管理操作指令

1、查看磁盘信息

[root@localhost ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part 
  ├─centos-root 253:0    0 17.5G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
sr0              11:0    1  8.1G  0 rom  
扇区 sector, 一个扇区 == 512B,  数据块 = 8个扇区  4K 

[root@localhost ~]# 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: 0x0000ca81

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    41943039    20458496   8e  Linux LVM

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

2、管理磁盘分区

# fdisk  硬盘名称 

[root@localhost ~]# fdisk /dev/sdb
	n	新建分区 
	d	删除分区
	p	查看分区
	w	保存退出
	q	不保存退出
	t	修改分区ID, 默认83

3、创建文件系统

# mkfs -t  文件系统名称  块设备文件名称  

/dev/sdb2     ext4       # mkfs -t ext4  /dev/sdb2       # mkfs.ext4 /dev/sdb2 

4、挂载

# mount  块设备文件名称    挂载点

/dev/sdb2     /webdata     # mount /dev/sdb2  /webdata 

5、磁盘分区管理案例

​ 主分区 500M 文件系统 ext4 挂载点 /web

​ 主分区 500M 文件系统 ext4 挂载点 /nginx

​ 逻辑分区 500M 文件系统 xfs 挂载点 /openstack

​ 逻辑分区 500M 文件系统 xfs 挂载点 /python

1) 创建分区
[root@localhost ~]# fdisk /dev/sdb 

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): +500M
Partition 1 of type Linux and of size 500 MiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (1026048-20971519, default 1026048): 
Using default value 1026048
Last sector, +sectors or +size{K,M,G} (1026048-20971519, default 20971519): +500M
Partition 2 of type Linux and of size 500 MiB is set



Command (m for help): n   
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): e
Partition number (3,4, default 3): 3
First sector (2050048-20971519, default 2050048): 
Using default value 2050048
Last sector, +sectors or +size{K,M,G} (2050048-20971519, default 20971519): 
Using default value 20971519
Partition 3 of type Extended and of size 9 GiB is set



Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (2052096-20971519, default 2052096): 
Using default value 2052096
Last sector, +sectors or +size{K,M,G} (2052096-20971519, default 20971519): +500M
Partition 5 of type Linux and of size 500 MiB is set

Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 6
First sector (3078144-20971519, default 3078144): 
Using default value 3078144
Last sector, +sectors or +size{K,M,G} (3078144-20971519, default 20971519): +500M
Partition 6 of type Linux and of size 500 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks



[root@localhost ~]# partprobe /dev/sdb			//让内核识别硬盘分区的变化 

[root@localhost ~]# lsblk | grep "sdb"
sdb               8:16   0   10G  0 disk 
├─sdb1            8:17   0  500M  0 part 
├─sdb2            8:18   0  500M  0 part 
├─sdb3            8:19   0    1K  0 part 
├─sdb5            8:21   0  500M  0 part 
└─sdb6            8:22   0  500M  0 part 
2) 创建文件系统/格式化
[root@localhost ~]# mkfs -t xfs /dev/sdb1 
[root@localhost ~]# mkfs -t ext4 /dev/sdb2


[root@localhost ~]# mkfs.ext4 /dev/sdb5
[root@localhost ~]# mkfs.xfs /dev/sdb6
3) 挂载使用
[root@localhost ~]# mount /dev/sdb1 /web/
[root@localhost ~]# mount /dev/sdb2 /nginx/
[root@localhost ~]# mount /dev/sdb5 /openstack/
[root@localhost ~]# mount /dev/sdb6 /python/
4) 查看磁盘挂载信息/容量使用信息
[root@localhost ~]# mount 

[root@localhost ~]# df -hT 			//查看磁盘容量的使用情况 
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        18G  5.7G   12G  33% /
devtmpfs                devtmpfs  473M     0  473M   0% /dev
tmpfs                   tmpfs     489M     0  489M   0% /dev/shm
tmpfs                   tmpfs     489M  7.2M  482M   2% /run
tmpfs                   tmpfs     489M     0  489M   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  154M  344M  31% /boot
tmpfs                   tmpfs      98M   12K   98M   1% /run/user/42
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
/dev/sdb1               ext4      477M  2.3M  445M   1% /web
/dev/sdb2               ext4      477M  2.3M  445M   1% /nginx
/dev/sdb5               xfs       497M   26M  472M   6% /openstack
/dev/sdb6               xfs       497M   26M  472M   6% /python
5) 卸载
# umount /dev/sdb1

三、实现磁盘开机自动挂载

查看磁盘UUID
[root@localhost ~]# blkid /dev/sdb5
/dev/sdb5: UUID="52533270-779d-4750-8e15-dd9b47617b52" TYPE="xfs" 
[root@localhost ~]# 
配置文件     /etc/fstab 

格式: 
块设备文件名称/UUID	挂载点名称		文件系统		挂载参数(defaults)		0 0

	第一个数字: 表示是否允许使用dump工具备份, 0代表不允许   1允许 
	第二个数字: 表示是否允许使用fsck工具检测磁盘
			0:不允许
			1:优先检测
			2:后续检测
			
[root@localhost ~]# vim /etc/fstab 
/dev/sdb1	/web	ext4	defaults	0 0
/dev/sdb2	/nginx	ext4	defaults	0 0
/dev/sdb5	/openstack	xfs	defaults	0 0
UUID="dcb9b1ab-0361-41ed-b099-ed7fdf427961"	/python		xfs	defaults	0 0

[root@localhost ~]# mount -a		//让系统重新读取fstab文件,挂载新条目 
[root@localhost ~]# 
[root@localhost ~]# df -hT | grep "sdb"
/dev/sdb1               ext4      477M  2.3M  445M   1% /web
/dev/sdb2               ext4      477M  2.3M  445M   1% /nginx
/dev/sdb5               xfs       497M   26M  472M   6% /openstack
/dev/sdb6               xfs       497M   26M  472M   6% /python

四、扩展swap分区容量

​ 1、创建磁盘分区, 将其ID修改为82

​ 2、将磁盘分区格式化swap文件系统

​ 3、启用新的swap

1、查看当前swap分区4容量

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            976         268         377           7         330         516
Swap:          2047           0        2047

2、创建2G大小的分区,并将其ID修改为82

[root@localhost ~]# fdisk /dev/sdb 

Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 7
First sector (4104192-20971519, default 4104192): 
Using default value 4104192
Last sector, +sectors or +size{K,M,G} (4104192-20971519, default 20971519): +2G
Partition 7 of type Linux and of size 2 GiB is set



Command (m for help): t
Partition number (1-3,5-7, default 7): 7  
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'



[root@localhost ~]# partprobe /dev/sdb

3、创建swap文件系统

[root@localhost ~]# mkswap /dev/sdb7
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=eb063126-e382-4f61-8fe7-fe074bc7aba0

4、启动新的swap分区

[root@localhost ~]# vim /etc/fstab 

/dev/sdb7	swap	swap	defaults	0 0
[root@localhost ~]# mount -a

[root@localhost ~]# swapon -a 
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            976         270         366           7         339         514
Swap:          4095           0        4095
[root@localhost ~]# swapoff /dev/sdb7 

七、磁盘结构

1、限制磁盘存储数据的因素

​ 容量

​ inode i节点 文件数量

[root@localhost ~]# df -i /dev/sdb1 
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sdb1      128016    20 127996    1% /web

[root@localhost ~]# cat a.sh 
#!/bin/bash
#

i=1
while [ $i -le 127995 ]; do
   touch /web/b$i
   let i++
done

[root@localhost ~]# bash a.sh 
inode  i节点 
	用于存储文件的元数据(metadata)信息
	元数据: 
		名称、大小、类型、权限等

查看文件的元数据信息 
[root@localhost ~]# stat /etc/fstab 
  File: ‘/etc/fstab’
  Size: 677       	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 18093999    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2020-12-22 23:35:43.442082327 +0800
Modify: 2020-12-22 23:35:43.430082327 +0800
Change: 2020-12-22 23:35:43.438082327 +0800

2、MBR

		主引导记录, 512字节

​		446字节:

​				存储系统的引导程序 

​		64字节:

​				分区表,保存主分区、扩展分区信息

​				一个分区信息占16字节

​		2字节:

​				分区结束信息
dd命令的使用
	块级别工具

[root@localhost ~]# dd if=/dev/zero of=/tmp/a.txt bs=1M count=100
	if  源文件		/dev/zero    字符设备文件 
	of	目的文件
	bs	数据块大小
	count 次数
	
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=446  
posted @ 2023-03-25 10:33  nhxuan  阅读(104)  评论(0)    收藏  举报