• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

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

    创建分区

    启动分区工具MBR

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

    进入会话模式

    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64

    使用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 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

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

    挂载mount

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

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

    查看挂载信息

    • 方法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
    分区     文件系统 大小  占用  空闲  占比  挂载点
    
    • 1
    • 2
    • 3
    • 4
    • 方法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)
    
    • 1
    • 2
    • 3

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

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

    磁盘分区的数量

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

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

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

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

    输入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.
    
    • 1

    重启之后,完成分区

    • 主分区未创建未使用
    - n
    - e
    - 回车
    - 回车
    
    • 1
    • 2
    • 3
    • 4

    操作系统必须放在主分区

    重启后的影响

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

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

    然后使用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
    
    • 1
    • 2
    查看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
    
    • 1
    • 2
    • 3

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

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

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

    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    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分区

  • 相关阅读:
    云服务器如何选?腾讯云2核2G3M云服务器88元一年!
    图的遍历—图的DFS—反向建边;
    【React】史上最简单的 减少重复渲染 思路,原来这么简单?
    分布式系统的发展历程
    通讯网关软件020——利用CommGate X2Mysql实现Modbus TCP数据转储Mysql
    Linux ——repo下载与使用方法详解
    第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 E: 数三角
    达梦数据库系列—15. 表的备份和还原
    alert、consloe、console.error、confirm、prompt
    2022年值得关注的5个区块链项目 数字藏品平台开发搭建
  • 原文地址:https://blog.csdn.net/HYESC/article/details/127450800