• Linux--系统基础磁盘管理相关知识详解笔记


    1.磁盘知识体系结构

    在这里插入图片描述

    第一个层次:磁盘相关物理知识 内部结构 外部结构 读写数据原理

    第二个层次:磁盘阵列知识 磁盘弹性扩展知识

    ​ 阵列:将多块磁盘整合为一块

    ​ (1)可以存储更大容量数据

    ​ (2)提升数据存储效率

    ​ (3)提升数据存储安全性

    第三个层次:磁盘分区表概念,分区命令使用 fdisk parted

    第四个层次:系统格式化操作 文件系统相关概念

    第五个层次:磁盘管理相关知识 挂载操作

    2.磁盘内部外部结构

    外部结构:看得见的部分

    在这里插入图片描述

    接口类型:SATA

    转速信息:5400/分钟<7200/分钟<10000转/分钟<12000转/分钟

    盘片部分:存储数据信息,可以有多块盘片

    磁头部分:读写数据信息,可以有多个磁头 (几个盘片就有几个磁头)

    磁头停泊区:关机之后磁头放在磁头停泊区

    磁盘主轴:决定磁盘转速

    磁盘容量:1024 科学计量换算 1000 企业生产换算

    内部结构:

    磁盘的磁道:每个磁道用于存储数据信息,并且每个磁盘存储数据容量是相同的

    磁盘扇区:将磁盘切分为多个部分,存储数据最小空间单位称为扇区

    ​ 扇区个数进行分区 1024 个扇区 1M (最小单位)

    磁盘柱面:磁盘有多个磁头时,是按照柱面来进行读取数据

    数据读取原理:二进制方式(凸起的地方代表数字1(磁化为1),凹的地方代表数字0)

    ​ 碎片整理就是依据机械硬盘工作原理对硬盘读写数据进行性能优化

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XegxljeT-1669102695936)(E:\Typora软件\linux运维笔记\运维笔记图片库\034内存存储数据原理.png)]

    3.磁盘阵列配置方法 raid

    进行磁盘阵列配置:

    配置阵列级别:RAID0 RAID1 RAID5 RAID10

    RAID0:可以提高数据存储效率 游戏赛事 WCG 无法保证数据安全性

    RAID1:可以提高数据的安全性 存储阵列 保证数据安全 浪费磁盘 无法提升性能

    RAID5: 可以提高数据存储效率 保证数据安全性 只浪费(1/3)

    RAID10:可以提高数据存储效率 保证数据安全性 磁盘空间浪费会多

    4.磁盘弹性扩容配置 LVM

    应用场景:数据库数据存储操作

    数据库:存储数据仓库 表形式存储数据 —data.sql 文件总的数据文件

    ​ /dev/sdc1分区-- /data 10G <----date.sql 10G

    90G

    PE:物理区域

    PV:物理卷(逻辑磁盘)

    VG:卷组

    LV:逻辑卷

    创建分区:
    [root@naWang ~]#fdisk -l
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     2099199     1048576   83  Linux
    /dev/sda2         2099200    41943039    19921920   8e  Linux LVM
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x8c5947aa
    
    对分好的区进行PV创建操作(利用LVM逻辑卷管理执行相关命令)
    [root@naWang ~]#pvcreate /dev/sdb1 /dev/sdb2  
    WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
      Wiping ext4 signature on /dev/sdb1.
    WARNING: ext4 signature detected on /dev/sdb2 at offset 1080. Wipe it? [y/n]: y
      Wiping ext4 signature on /dev/sdb2.
      Physical volume "/dev/sdb1" successfully created.
      Physical volume "/dev/sdb2" successfully created.
      
    用pvs或者pvdisplay查看详细信息
      
    逻辑管理创建VG过程
    [root@naWang ~]#vgcreate vg1 /dev/sdb1 /dev/sdb2
      Volume group "vg1" successfully created      ———————— /dev/sdb1 已创建完成PV物理卷
      
    
    vgdisplay		---查看所有卷组的详细信息
    
    
    • 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

    逻辑管理创建LV过程

    [root@naWang ~]#lvcreate -L 200M -n lv1 vg1
      Logical volume "lv1" created.
    -L	----参数后跟的是你要设定的逻辑卷大小,这个大小必须是你设定的PE值的整数倍,如果不是它会给你分一个比你设定大一点的空间,也就是向上取整数倍空间。弊端就是有可能用不完vg里面的空间
    
    先用mkfs命令对创建的卷组进行格式化操作:
    [root@naWang ~]#mkfs.ext4 /dev/vg1/lv1
    mke2fs 1.42.9 (28-Dec-2013)
    文件系统标签=
    OS type: Linux
    块大小=1024 (log=0)
    分块大小=1024 (log=0)
    Stride=0 blocks, Stripe width=0 blocks
    51200 inodes, 204800 blocks
    10240 blocks (5.00%) reserved for the super user
    第一个数据块=1
    Maximum filesystem blocks=33816576
    25 block groups
    8192 blocks per group, 8192 fragments per group
    2048 inodes per group
    Superblock backups stored on blocks: 
    	8193, 24577, 40961, 57345, 73729
    
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (4096 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成 
    
    创建一个空目录,再把创建好的逻辑卷挂载上就可以使用了
    [root@naWang ~]#mkdir /disk1
    [root@naWang ~]#mount /dev/vg1/lv1 /disk1
    [root@naWang ~]#df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 844M     0  844M    0% /dev
    tmpfs                    861M  4.0K  861M    1% /dev/shm
    tmpfs                    861M   11M  850M    2% /run
    tmpfs                    861M     0  861M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   17G  9.8G  7.3G   58% /
    /dev/sda1               1014M  239M  776M   24% /boot
    tmpfs                    173M   12K  173M    1% /run/user/42
    tmpfs                    173M     0  173M    0% /run/user/0
    /dev/mapper/vg1-lv1      190M  1.6M  175M    1% /disk1
    
    说明:如果想实现开机自动挂载,可以后续编写/etc/rc.local和/etc/fstab 文件信息
    
    • 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

    LVM逻辑实战调整过程

    磁盘创建逻辑卷扩容过程

    使用lvextend命令来对逻辑卷进行扩容:

    [root@naWang ~]#vgs				---查看剩余空间是否充足
      VG     #PV #LV #SN Attr   VSize   VFree  
      centos   1   2   0 wz--n- <19.00g      0 
      vg1      2   1   0 wz--n-  19.99g <19.80g
    [root@naWang ~]#lvextend -L +100M /dev/vg1/lv1
      Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 300.00 MiB (75 extents).
      Logical volume vg1/lv1 successfully resized.
    [root@naWang ~]#lvscan
      ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
      ACTIVE            '/dev/centos/root' [<17.00 GiB] inherit
      ACTIVE            '/dev/vg1/lv1' [300.00 MiB] inherit
    [root@naWang ~]#lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao---- <17.00g                                                    
      swap centos -wi-ao----   2.00g                                                    
      lv1  vg1    -wi-ao---- 300.00m    
      需要注意此时文件系统并没有增大,需要执行命令让文件系统识别已经扩容的空间
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    [root@naWang ~]#df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/vg1-lv1      190M  1.6M  175M    1% /disk1	---未识别扩容空间
    [root@naWang ~]#resize2fs -f /dev/mapper/vg1-lv1 		---加载识别扩容空间
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/mapper/vg1-lv1 is mounted on /disk1; on-line resizing required
    old_desc_blocks = 2, new_desc_blocks = 3
    The filesystem on /dev/mapper/vg1-lv1 is now 307200 blocks long.
    
    [root@naWang ~]#df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/vg1-lv1      287M  2.1M  267M    1% /disk1	  ---已识别扩容空间
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    5.磁盘分区操作过程

    磁盘分区方案介绍:

    /boot 分区 200M

    swap 分区 1~8G 内存1.5

    ​ / 分区 剩余空间 50~200G 系统数据/服务程序数据

    /data 分区 剩余空间 存储

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-29LapMEu-1669102695937)(E:\Typora软件\linux运维笔记\运维笔记图片库\035开机启动流程.PNG)]

    磁盘分区方法原则:

    磁盘分区表:64字节 每16个字节表示一个分区信息----主分区 4个分区

    ​ 取出其中16个字节可以进行扩展分区设置 只能有一个 扩展分区下面可以划分更多逻辑分区

    ​ PS:主分区可以直接使用 扩展分区不可以直接使用

    四个分区 一个扩展分区(多个逻辑分区)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9U6d8knM-1669102695937)(E:\Typora软件\linux运维笔记\运维笔记图片库\036磁盘分区表.PNG)]

    磁盘分区的方法步骤:

    fdisk:centos6---不能划分2T容量以上分区
    	  centos7---能划分2T容量以上分区
    
    parted:可以划分2T容量以上分区
    
    • 1
    • 2
    • 3
    • 4

    2T以下分区划分:

    第一个历程:指定进行分区设备文件

    fdisk /dev/sdb

    第二个历程:根据需求进行分区

    分区命令信息:

    命令操作
    c   ---设置分区模式dos(小于2T)
    d	---删除已经分好的区
    g	---设置分区模式gpt(大于或等于2T)
    l	---列表显示可用分区类型
    m	---获取帮助
    o	---创建一个新的dos分区表
    q	---退出分区操作并且不保存
    p	---输出已经分区的信息
    t	---修改分区类型信息
    w	---保存对分区的设定
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    6.磁盘格式化操作

    创建文件系统 – 产生inode block

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iRcFccjc-1669102695938)(E:\Typora软件\linux运维笔记\运维笔记图片库\037磁盘格式化操作.PNG)]
    如何进行格式化操作

    mkfs -t xfs /dev/sdc1
    mkfs.xfs -f /dev/sdc1		---强制在已有文件系统文件中进行重新格式化操作
    
    • 1
    • 2

    7.磁盘挂载操作

    mount 参数配置

    默认挂载参数信息:

    rw(默认)			   ---挂载之后的挂载点目录,具有读写能力
    ro				    ---挂载之后的挂载点目录,只具有读能力
    suid(默认)	      ---挂载之后的挂载点目录中,可以让setuid权限文件生效
    nosuid	  		    ---挂载之后的挂载点目录中,可以让setuid权限文件失效
    dev(默认)
    nodev
    exec(默认)	     ---挂载之后的挂载点目录中,可以让具有执行权限文件生效
    noexec			    ---挂载之后的挂载点目录中,可以让具有执行权限文件失效
    auto(默认)		 ---允许挂载配置信息进行自动挂载
    noauto				---禁止挂载配置信息进行自动挂载
    user				---允许普通用户进行挂载操作
    nouser				---禁止普通用户进行挂载操作
    async(默认)		  ---异步方式存储数据
    sync				---同步方式存储数据
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    当挂载点目录无法卸载时,可以进行强制卸载

    umount -lf /mnt

    -l —不用从目录中切换出来,也可以进行卸载

    -f —强制卸载目录信息

    ——————————————————————————————————

    一个挂载点无法卸载的原因:

    1)此时正在挂载目录中,是无法直接卸载

    2)有其他用户或者程序进程,正在使用加载挂载目录中的数据信息

    ——————————————————————————————————

    8.磁盘交换分区如何扩容

    内存 硬盘使用情况需要实时关注

    内存 存储一些数据信息和服务进程有关 (内存溢出导致)

    临时将磁盘空间交换给内存使用

    交换分区临时扩容步骤:

    第一个步骤:创建系统交换分区使用文件

    dd if=/dev/zero of=/tmp/1G bs=100M cout=10
    
    • 1

    第二个步骤:设置文件被交换分区所使用

    mkswap /tmp/1G
    
    • 1

    第三个步骤:文件划到交换分区使之生效

    swapon /tmp/1G		---加载交换空间
    swpoff /tmp/1G		---卸载交换空间
    
    • 1
    • 2
  • 相关阅读:
    【前后缀技巧】2022牛客多校3 A
    堆排序和Top-K问题(C语言实现)
    入门力扣自学笔记147 C++ (题目编号1598)
    【C语言学习】易混淆知识点
    Java内存模型(JMM)详解
    线程、同步
    Volcano成Spark默认batch调度器
    Python安装教程
    一起来了解下 TOWER “未知装置”
    Egg如何实现文件上传
  • 原文地址:https://blog.csdn.net/weixin_51313763/article/details/127983967