Linux系统配置及服务管理-06-存储管理

基本分区

磁盘简介

磁盘/硬盘/disk是一个东西,不同于内存的是容量比较大。

类型

从工作原理区分

  • 机械
    机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。

  • 固态
    固态驱动器(Solid State Disk或Solid State Drive,简称SSD),俗称固态硬盘,固态硬盘是用固态电子存储芯片阵列而制成的硬盘
    在这里插入图片描述
    左侧为固态硬盘,右侧为机械硬盘

尺寸

  • 3.5英寸
  • 2.5
  • 1.8

接口

  • 早期IDE —— 现在SATA I/II/III
    在这里插入图片描述
    在这里插入图片描述

转速

  • 5400rpm
  • 7200
  • 10000
  • 15000

厂商

  • 西部数据
  • 希捷
  • 三星/日立/金士顿

术语

  • 盘片 platter
    一块硬盘有若干盘片,每个盘片有可以存储数据的上、下两盘面(Side)。这些盘面堆叠在主轴上高速旋转,它们从上至下从“0”开始依次编号。

  • 磁道 track
    每个盘面被划分成许多同心圆,这些同心圆轨迹叫做磁道;磁道从外向内从0开始顺序编号。

  • 扇区 sector
    将一个盘面划分为若干内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区。每个扇区中的数据作为一个单元同时读出或写入。硬盘的第一个扇区,叫做引导扇区。

  • 柱面 cylinder
    所有盘面上的同一磁道构成一个圆柱,称作柱面
    在这里插入图片描述

命名

kernel对不同接口硬盘命名方式,以RHEL7/centos7为例

  • IDE(并口)

    • /dev/hda
    • /dev/hdb
  • SATA(串口)

    • /dev/sda
      - /dev 设备文件目录
      - sda 是一个文件
      - s 代表sata,就是串口
      - d 代表磁盘disk
      - a 第一块

分区方式

MBR

主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导

  • MBR支持最大的磁盘容量是 <2TB。设计时分配4个主分区
  • 如果希望超过4个分区,需放弃主分区,改为扩展分区和逻辑分区。
  • fdisk命令

GPT

全局唯一标识分区表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。

GPT 支持大于2T的硬盘,支持128个分区

管理磁盘

添加磁盘

VMWARE增加磁盘

先关闭虚拟机电源
1、编辑虚拟机设置
在这里插入图片描述
2、增加磁盘
在这里插入图片描述
按默认点击下一步就可以添加成功

管理磁盘流程三部曲

分区(MBR或者GPT) ----> 格式化/文件系统 Filesystem ----> 挂载mount

查看磁盘信息

  • 方法1
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 125 09:35 /dev/sda
brw-rw----. 1 root disk 8,  1 125 09:35 /dev/sda1
brw-rw----. 1 root disk 8,  2 125 09:35 /dev/sda2
brw-rw----. 1 root disk 8, 16 125 09:35 /dev/sdb
brw-rw----. 1 root disk 8, 32 125 09:35 /dev/sdc
brw-rw----. 1 root disk 8, 48 125 09:35 /dev/sdd

注释:
- /dev/sdb
- /dev/sdc
- /dev/sdc
- 每一个都相当于购买的新磁盘。

  • 方法2:lsblk
    在这里插入图片描述
    名称 设备类型 序号 是否可移动设备 大小 是否只读 磁盘或分区 挂载点

创建分区

启动分区工具MBR

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

进入会话模式

[root@localhost ~]# fdisk /dev/sdb
# 提示1
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 0x5925deea.

Command (m for help): 

# 操作,敲击字母“n”键,新建分区
# 提示2
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
# 操作,敲击字母“p”键
# 说明:请选择主分区,或扩展分区
	
# 提示3
Select (default p): p
Partition number (1-4, default 1): 
# 操作,敲击数字“1”键,选择分区号
	
# 提示4
First sector (2048-10485759, default 2048): 
# 起始 扇区 (2048-10485759,默认为 2048):
# 扇区数量计算方法,此处是5G(5368709120Byte)硬盘。每个扇区是512Byte,1024*1024*1024*5/512=1048760,因为扇区从0号开始,因此最后一个扇区号是10485759。
# 2048:0-2047 扇区,是MBR分区表占用,合计1MB
# 操作,敲击回车键,选择磁盘开始的扇区
	
# 提示5
Using default value 2048
Last sector, +sectors or +size{
    
    K,M,G} (2048-10485759, default 10485759): 
# 操作,输入分区大小“+2G” 后回车,实际环境根据磁盘划分,如4T磁盘,可以500G 一个分区。该项是选择磁盘分区结束的扇区,即分区大小
	
# 提示6
Partition 1 of type Linux and of size 2 GiB is set
# 说明,已经完成 2G 大小分区记录。但未生效
	
# 提示7
Command (m for help): 
The partition table has been altered!
# 操作,输入w保存分区信息,自动退出分区工具
Calling ioctl() to re-read partition table.
Syncing disks.

# 刷新分区表
[root@localhost ~]#  partprobe /dev/sdb   
	
# 查看分区结果
[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 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: 0x5925deea

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux

使用lsblk也可查看
在这里插入图片描述
第一个分区划分磁盘完毕,/dev/sdb1

创建文件系统

[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

后续新创建的分区,如sdb2sdb3都要格式化

挂载mount

手动挂载
创建挂载点,一个分区一个挂载点

[root@localhost ~]# mkdir /mnt/disk1
[root@localhost ~]#mount -t ext4  /dev/sdb1 /mnt/disk1

查看挂载信息

  • 方法1: df -hT
    T:显示Type列
    h:容量可以读懂
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 ext4  2G    6M   1.9G  3% /mnt/disk1
分区     文件系统 大小  占用  空闲  占比  挂载点
  • 方法2 mount
[root@server0 ~]# mount
/dev/sdb1 on /mysql_data type xfs (rw,relatime,seclabel,attr2,inode64,noquoa)
/dev/sdb3 on /mnt/disk1/disk2/disk3/disk4 type ext4 (rw,relatime,seclabel,dta=ordered)

mount 看的是磁盘有没有特殊属性,看到的信息会比较多,可以使用mount|grep sdb1查看具体某个分区的挂载情况

  • 服务器重启之后,挂载会失效,解决方案如下
- 1.永久挂载fstab(见后文)
- 2.写入自启动文件,不要影响文件原先的内容
vim /root/.bashrc 
mount -t ext4  /dev/sdb1 /mnt/disk1

磁盘分区的数量

如果创建磁盘分区数量超过4个,需要放弃一个主分区,选择创建扩展分区。

主分区已创建4个并使用

  • 0.先卸载
umount /dev/sdb4
  • 1.删除主分区
fdisk    /dev/sdb
# d 删除分区
# 4 第四个分区
# p 打印分区列表,查看删除结果
  • 2.创建扩展分区
- n 创建分区
- e 扩展分区
- 回车
- 起始扇区
- 回车
- 磁盘的结尾 ,不要设置结尾,直接回车

扩展分区不可以被格式化,挂载,扩展分区只占用很小的空间,可能只有1M或者512B

  • 3.创建逻辑分区
- n
- 回车
- +200M
- p

输入l是列出分区类型
partprobe /dev/sdb
在不断操作磁盘的情况下可能会报错,本次报错如下:

Error: Partition(s) 5, 6, 7 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.

重启之后,完成分区

  • 主分区未创建未使用
- n
- e
- 回车
- 回车

操作系统必须放在主分区

重启后的影响

mount临时挂载就消失了。需要使用永久挂载

vim /etc/fstab 
/dev/sdb1      /mnt/disk1      ext4                     defaults       0         0
磁盘                挂载点     文件系统类型          		默认选项  	 优先级 		优先级

然后使用mount -a使上述修改立即生效

逻辑卷LVM

基本磁盘有个最大的缺点就是无法调整大小,限制了使用场景。
LVM是管理磁盘的一种方式,性质与基本磁盘无异,但是可以随意扩张大小

后续会使用命令写满磁盘来测试,命令为:dd if=/dev/zero of=/mnt/disk4/1.txt bs=1M count=1000 注意修改of的路径为要写满的路径

术语

  • LVM:Logical Volume Manager(逻辑卷管理)
  • PV:物理卷(Physical volume):一块硬盘,或多块硬盘
  • VG:卷组(Volume Group):一堆磁盘的统称
  • LV:逻辑卷(Logical Volume):一个逻辑分区,一个分区

一、创建LVM

流程:物理磁盘 --> 物理卷pv --> 卷组vg --> 逻辑卷lv
pvcreate —> vgcreate —> lvcreate
逻辑卷从卷组中获取空间,逻辑卷空间不足时,通过卷组扩容,卷组空间不足时,再通过物理卷扩容卷组

准备物理磁盘

在这里插入图片描述

1.转换物理卷PV

将物理磁盘,转换成物理卷-PV

pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created

查看PV信息

pvscan
在这里插入图片描述
pvs
在这里插入图片描述
pvdisplay
在这里插入图片描述

2. 创建卷组vg

vgcreate vg1 /dev/sdc
在这里插入图片描述

查看卷组信息

第一种方法,查看卷组的摘要信息。卷组名,物理卷数量,逻辑卷数量,大小等。

[root@localhost /]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  vg1      1   0   0 wz--n- <5.00g <5.00g

第二种方法,扫描卷组信息

[root@localhost /]# vgscan
  Reading volume groups from cache.
  Found volume group "vg1" using metadata type lvm2

第三种方法。显示卷组详细信息

[root@localhost /]# vgdisplay
--- Volume group ---
VG Name vg1
System ID 
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <5.00 GiB					//重点观察
PE Size 4.00 MiB					//重点观察
Total PE 1279						//重点观察
Alloc PE / Size 0 / 0 
Free PE / Size 1279 / <5.00 GiB
VG UUID agjub2-XL3q-8QqW-dX0b-RBNt-Udoc-Y0Bwwc

3. 创建逻辑卷lv

lvcreate -L 200M -n lv1 vg1
lvcreate :创建逻辑卷
-L:大小 ,单位M,G
-n:卷名
vg1:组名

lvscan查看LV
在这里插入图片描述
lsblk
在这里插入图片描述

4. 创建文件系统并挂载

从上一步可以看出,逻辑卷就类似一个磁盘分区,创建逻辑卷时已经指定了大小,这里就直接创建文件系统即可
mkfs.ext4 /dev/vg1/lv1
注意:/dev/卷组名/逻辑卷名 ,上边通过lsblk可以看到这个名称

5.创建挂载点

mkdir /mnt/lv1

6.挂载

mount /dev/vg1/lv1 /mnt/lv1

查看挂载结果

df -hT
在这里插入图片描述

逻辑卷管理完毕,就可以向挂载点写入数据了

二、VG 卷组管理

扩大卷组VG
vgextend

环境:/dev/vg1 容量由5G 扩容到 6G
步骤1:创建PV。而后使用第二步,将PV增加到VG中
pvcreate /dev/sdd,sdd是1G容量

步骤2:扩展VG,同时包含方法1.
vgextend vg1 /dev/sdd
Volume group “vg1” successfully extended

查看VG
vgs
在这里插入图片描述

三、LV扩容

扩大LV lvextend

1.查看VG空间

上一步可看到vg1有5.99G

2.扩容LV

增加200M空间,给lv1
lvextend -L +200M /dev/vg1/lv1
在这里插入图片描述

3. FS扩容

先观察文件系统当前容量。

df -Th
在这里插入图片描述resize2fs /dev/vg1/lv1
再次观察df -hT 的分区大小,和上一次的对比一下,大小已经发生改变
在这里插入图片描述

四、命令汇总

在这里插入图片描述
在这里插入图片描述

交换分区管理 Swap

作用: 提升’内存的容量,防止OOM(Out Of Memory)

swap大小

推荐:设置交换分区大小为内存的2倍

生产:

  • 大于 4GB 而小于 16GB 内存的系统,最小需要 4GB 交换空间
  • 大于 16GB 而小于 64GB 内存的系统,最小需要 8GB 交换空间
  • 大于 64GB 而小于 256GB 内存的系统,最小需要 16GB 交换空间

实操中很多时候会关闭交换分区

一、查看当前的交换分区

free -mh
在这里插入图片描述

二、增加交换分区

1. 准备分区

准备将/dev/sde磁盘,划分为1G分区为例
在这里插入图片描述

fdisk /dev/sde 一路enter即可

可选:划分分区后,将类型设置为82,实测改不改都可以

partprobe /dev/sde
查看分区lsblk

在这里插入图片描述

2.格式化

mkswap /dev/sde1

3.挂载

swapon /dev/sde1

4.验证

在这里插入图片描述
可以看到swap分区已经变成了2G

5.卸载

swapon /dev/sde1
之后可以重新对该磁盘进行分区格式化提供给其他使用

6.关闭安装系统时设置的swap分区

vim /etc/fstab
在这里插入图片描述
将上图中的红框的这行注释掉,只要是swap类型的都注释掉即可。
有这个需求是在安装k8s时,k8s要求关闭swap分区

猜你喜欢

转载自blog.csdn.net/HYESC/article/details/127450800