• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

云计算Linux运维——Linux系统管理——磁盘管理

武飞扬头像
¥阿拉伯王子¥
帮助2

点关注不迷路

目录

1磁盘分区管理

一、硬盘基础知识

1、硬盘的表示方法

2、查看块设备

3、硬盘分区的表示方法

4、创建文件系统/格式化

5、操作磁盘的流程

二、管理磁盘分区工具 fdisk

1、使用格式

2、查看磁盘分区

三、磁盘分区案例

1、规划

2、创建分区

3、让内核识别硬盘上的分区变化

4、创建文件系统/格式化

5、挂载使用

四、设置开机自动挂载  etc/fstab

1、文件格式

2、实现开机自动挂载

五、查看磁盘容量使用情况

六、inode —— i节点

2、inode

2GPT磁盘管理

一、文件系统结构介绍

1、dd工具

二、GPT格式磁盘分区

1、分区表的类型

2、parted工具的使用

3RAID 磁盘阵列

一、RAID介绍

1、RAID 0 条带卷

2、RAID 1 镜像卷

3、RAID 5 奇偶校验卷

4、RAID 6

5、RAID 10

三、RAID实现方式

四、模拟RAID 5的操作

1、创建RAID 5

3、热备盘 Hot Spare

4LVM逻辑卷管理

一、逻辑卷简介

二、逻辑卷相关管理命令

 1、PV相关命令

2)创建PV

2、VG相关命令

3、逻辑卷LV相关命令

三、案例——创建逻辑卷

1、创建PV

2、创建VG

3、创建LV

4、创建文件系统,挂载使用

四、逻辑卷扩容

1、扩容流程

2、扩展/dev/db/mysql的容量到35G

3、将/dev/db/mysql扩容到45GB

4、将/dev/db/redis扩容到1000M

五、逻辑卷缩容

1、注意事项

2、将逻辑卷/dev/db/mysql缩减到10G

五、删除逻辑卷

1、删除逻辑卷

2、删除卷组

3、删除物理卷

5链接文件

一、类型

2、软连接/符号链接【常用】

3、硬链接、软连接的区别


1磁盘分区管理

一、硬盘基础知识

  • 数据持久化存储

1、硬盘的表示方法

  • /dev/sda
    • sd:SATA,SAS接口
      • SATA:6G/s
      • SAS:6G/s
      • a 第1块硬盘
  1.  
    [root@localhost ~]# ls -l /dev/sda
  2.  
    brw-rw----. 1 root disk 8, 0 714 08:41 /dev/sda
  • b  block 块设备文件

硬盘存储数据的基础结构:

  • 数据块 block
    • 随机
    • 每个数据块只能存一个文件的数据
  1.  
    [root@localhost ~]# du -h /opt/file01
  2.  
    4.0K /opt/file01

2、查看块设备

命令:lsblk

  1.  
    [root@localhost ~]# lsblk
  2.  
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3.  
    sda 8:0 0 20G 0 disk
  4.  
    ├─sda1 8:1 0 800M 0 part /boot
  5.  
    └─sda2 8:2 0 19.2G 0 part
  6.  
    ├─centos-root 253:0 0 17.2G 0 lvm /
  7.  
    └─centos-swap 253:1 0 2G 0 lvm [SWAP]
  8.  
    sdb 8:16 0 5G 0 disk
  9.  
    sdc 8:32 0 5G 0 disk
  10.  
    sr0 11:0 1 9.5G 0 rom /run/media/root/CentOS 7 x86_6

3、硬盘分区的表示方法

1)分区类型

  • 主分区
  • 扩展分区
    • 主分区 扩展分区 <=  4
    • 扩展分区最多只能有一个
  • 逻辑分区

2)分区的表示方法

  • 1---4
    • 表示主分区、扩展分区
  • 5以后
    • 表示逻辑分区

4、创建文件系统/格式化

  • windows
    • NTFS,FAT32
  • Linux
    • ext4,xfs

查看分区的文件系统

  1.  
    [root@localhost ~]# blkid /dev/sda1
  2.  
    /dev/sda1: UUID="2aa0a971-7181-4084-8f15-9cb3e1e753cf" TYPE="xfs"

5、操作磁盘的流程

  • 准备磁盘
  • 规划创建分区
  • 创建文件系统/格式化
  • 挂载
    • 将硬盘/分区和某个目录关联在一起

二、管理磁盘分区工具 fdisk

1、使用格式

命令:fdisk 硬盘名称 

  • n 新建分区
  • d 删除分区
  • p 查看分区
  • w 保存退出
  • q 强制退出

2、查看磁盘分区

  1.  
    [root@localhost ~]# fdisk -l /dev/sda
  2.  
     
  3.  
    磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
  4.  
    Units = 扇区 of 1 * 512 = 512 bytes
  5.  
    扇区大小(逻辑/物理):512 字节 / 512 字节
  6.  
    I/O 大小(最小/最佳):512 字节 / 512 字节
  7.  
    磁盘标签类型:dos
  8.  
    磁盘标识符:0x000dfd05
  9.  
     
  10.  
    设备 Boot Start End Blocks Id System
  11.  
    /dev/sda1 * 2048 1640447 819200 83 Linux
  12.  
    /dev/sda2 1640448 41943039 20151296 8e Linux LVM

三、磁盘分区案例

1、规划

主分区 500M ext4 /web/httpd

逻辑分区 500M ext4 /web/nginx

逻辑分区 500M xfs /web/tomcat

2、创建分区

  1.  
    [root@localhost ~]# fdisk /dev/sdb
  2.  
    欢迎使用 fdisk (util-linux 2.23.2)。
  3.  
     
  4.  
    更改将停留在内存中,直到您决定将更改写入磁盘。
  5.  
    使用写入命令前请三思。
  6.  
     
  7.  
    Device does not contain a recognized partition table
  8.  
    使用磁盘标识符 0x56994c62 创建新的 DOS 磁盘标签。
  9.  
     
  10.  
    命令(输入 m 获取帮助):n
  11.  
    Partition type:
  12.  
    p primary (0 primary, 0 extended, 4 free)
  13.  
    e extended
  14.  
    Select (default p): p
  15.  
    分区号 (1-4,默认 1):1
  16.  
    起始 扇区 (2048-10485759,默认为 2048):
  17.  
    将使用默认值 2048
  18.  
    Last 扇区, 扇区 or size{K,M,G} (2048-10485759,默认为 10485759): 500M
  19.  
    分区 1 已设置为 Linux 类型,大小设为 500 MiB
  20.  
     
  21.  
    命令(输入 m 获取帮助):n
  22.  
    Partition type:
  23.  
    p primary (1 primary, 0 extended, 3 free)
  24.  
    e extended
  25.  
    Select (default p): e
  26.  
    分区号 (2-4,默认 2):2
  27.  
    起始 扇区 (1026048-10485759,默认为 1026048):
  28.  
    将使用默认值 1026048
  29.  
    Last 扇区, 扇区 or size{K,M,G} (1026048-10485759,默认为 10485759):
  30.  
    将使用默认值 10485759
  31.  
    分区 2 已设置为 Extended 类型,大小设为 4.5 GiB
  32.  
     
  33.  
    命令(输入 m 获取帮助):n
  34.  
    Partition type:
  35.  
    p primary (1 primary, 1 extended, 2 free)
  36.  
    l logical (numbered from 5)
  37.  
    Select (default p): l
  38.  
    添加逻辑分区 5
  39.  
    起始 扇区 (1028096-10485759,默认为 1028096):
  40.  
    将使用默认值 1028096
  41.  
    Last 扇区, 扇区 or size{K,M,G} (1028096-10485759,默认为 10485759): 500M
  42.  
    分区 5 已设置为 Linux 类型,大小设为 500 MiB
  43.  
     
  44.  
    命令(输入 m 获取帮助):n
  45.  
    Partition type:
  46.  
    p primary (1 primary, 1 extended, 2 free)
  47.  
    l logical (numbered from 5)
  48.  
    Select (default p): l
  49.  
    添加逻辑分区 6
  50.  
    起始 扇区 (2054144-10485759,默认为 2054144):
  51.  
    将使用默认值 2054144
  52.  
    Last 扇区, 扇区 or size{K,M,G} (2054144-10485759,默认为 10485759): 500M
  53.  
    分区 6 已设置为 Linux 类型,大小设为 500 MiB
  54.  
     
  55.  
    命令(输入 m 获取帮助):p
  56.  
     
  57.  
    磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
  58.  
    Units = 扇区 of 1 * 512 = 512 bytes
  59.  
    扇区大小(逻辑/物理):512 字节 / 512 字节
  60.  
    I/O 大小(最小/最佳):512 字节 / 512 字节
  61.  
    磁盘标签类型:dos
  62.  
    磁盘标识符:0x56994c62
  63.  
     
  64.  
    设备 Boot Start End Blocks Id System
  65.  
    /dev/sdb1 2048 1026047 512000 83 Linux
  66.  
    /dev/sdb2 1026048 10485759 4729856 5 Extended
  67.  
    /dev/sdb5 1028096 2052095 512000 83 Linux
  68.  
    /dev/sdb6 2054144 3078143 512000 83 Linux
  69.  
     
  70.  
    命令(输入 m 获取帮助):
  71.  
    命令(输入 m 获取帮助):
  72.  
    命令(输入 m 获取帮助):
  73.  
    命令(输入 m 获取帮助):w
  74.  
    The partition table has been altered!
  75.  
     
  76.  
    Calling ioctl() to re-read partition table.
  77.  
    正在同步磁盘。

3、让内核识别硬盘上的分区变化

命令:partprobe /dev/sdb

  1.  
    [root@localhost ~]# lsblk | grep "sdb"
  2.  
    sdb 8:16 0 5G 0 disk
  3.  
    ├─sdb1 8:17 0 500M 0 part
  4.  
    ├─sdb2 8:18 0 1K 0 part
  5.  
    ├─sdb5 8:21 0 500M 0 part
  6.  
    └─sdb6 8:22 0 500M 0 part

4、创建文件系统/格式化

命令:mkfs -t 文件系统 设备名称

命令:mkfs.文件系统 设备名称

  1.  
    [root@localhost ~]# mkfs -t ext4 /dev/sdb6
  2.  
    [root@localhost ~]# mkfs -t ext4 /dev/sdb5
  3.  
    [root@localhost ~]# mkfs -t xfs /dev/sdb6

5、挂载使用

命令:mount 设备文件 挂载点目录

  1.  
    [root@localhost ~]# mount /dev/sdb1 /web/httpd
  2.  
    [root@localhost ~]# mount /dev/sdb5 /web/nginx
  3.  
    [root@localhost ~]# mount /dev/sdb6 /web/tomcat

查看挂载

命令:mount | grep -i "磁盘名"

  1.  
    [root@localhost ~]# mount | grep -i "sdb"
  2.  
    /dev/sdb1 on /web/httpd type ext4 (rw,relatime,seclabel,data=ordered)
  3.  
    /dev/sdb5 on /web/nginx type ext4 (rw,relatime,seclabel,data=ordered)
  4.  
    /dev/sdb6 on /web/tomcat type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

使用磁盘存储数据

  1.  
    [root@localhost ~]# touch /web/httpd/{1..10}.html
  2.  
    [root@localhost ~]# ls /web/httpd/
  3.  
    10.html 1.html 2.html 3.html 4.html 5.html 6.html 7.html 8.html 9.html lost found

卸载磁盘

[root@localhost ~]# umount /dev/sdb1

[root@localhost ~]# mount | grep "httpd"

四、设置开机自动挂载  etc/fstab

1、文件格式

  1.  
    设备文件/UUID 挂载点目录 文件系统 挂载参数(defaults) 0 0
  2.  
     
  3.  
    1个数字: 系统是否自动备份 0 1
  4.  
    2个数字: 系统启动时是否检测磁盘 0 1 2

2、实现开机自动挂载

  1.  
    [root@localhost ~]# vim /etc/fstab
  2.  
    /dev/sdb1 /web/httpd ext4 defaults 0 0
  3.  
    /dev/sdb5 /web/nginx ext4 defaults 0 0
  4.  
    UUID=7d9f65e6-deca-4ae0-81ee-d804bd848cca /web/tomcat xfs defaults 0 0
  5.  
     
  6.  
    [root@localhost ~]# mount -a
  7.  
     
  8.  
    [root@localhost ~]# lsblk | grep -i "sdb"
  9.  
    sdb 8:16 0 5G 0 disk
  10.  
    ├─sdb1 8:17 0 500M 0 part /web/httpd
  11.  
    ├─sdb2 8:18 0 1K 0 part
  12.  
    ├─sdb5 8:21 0 500M 0 part /web/nginx
  13.  
    └─sdb6 8:22 0 500M 0 part /web/tomcat

五、查看磁盘容量使用情况

命令:df - hT

  1.  
    [root@localhost ~]# df -hT
  2.  
    文件系统 类型 容量 已用 可用 已用% 挂载点
  3.  
    devtmpfs devtmpfs 470M 0 470M 0% /dev
  4.  
    tmpfs tmpfs 487M 0 487M 0% /dev/shm
  5.  
    tmpfs tmpfs 487M 8.4M 478M 2% /run
  6.  
    tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
  7.  
    /dev/mapper/centos-root xfs 18G 6.3G 11G 37% /
  8.  
    /dev/sdb6 xfs 497M 26M 472M 6% /web/tomcat
  9.  
    /dev/sdb5 ext4 477M 2.3M 445M 1% /web/nginx
  10.  
    /dev/sdb1 ext4 477M 2.3M 445M 1% /web/httpd
  11.  
    /dev/sda1 xfs 797M 172M 626M 22% /boot
  12.  
    tmpfs tmpfs 98M 12K 98M 1% /run/user/42
  13.  
    tmpfs tmpfs 98M 0 98M 0% /run/user/0

六、inode —— i节点

  • 容量
  • inode :文件数量

1)查看磁盘容量

  1.  
    [root@localhost ~]# df -hT /dev/sdb1
  2.  
    文件系统 类型 容量 已用 可用 已用% 挂载点
  3.  
    /dev/sdb1 ext4 477M 2.3M 445M 1% /web/httpd

2)查看磁盘inode

  1.  
    [root@localhost ~]# df -i /dev/sdb1
  2.  
    文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
  3.  
    /dev/sdb1 128016 21 127995 1% /web/httpd
  • 建文件的脚本
  1.  
    [root@localhost ~]# for i in $(seq 127995)
  2.  
    > do
  3.  
    > touch /web/httpd/b$i
  4.  
    > done

2、inode

  • 存储文件的元数据metadata信息
    • 文件的存储
      • 真实的数据
        • 数据块
      • 元数据信息
        • inode
  • 查看文件的元数据
  1.  
    [root@localhost ~]# stat /etc/fstab
  2.  
    文件:"/etc/fstab"
  3.  
    大小:615 块:8 IO 块:4096 普通文件
  4.  
    设备:fd00h/64768d Inode:18354730 硬链接:1
  5.  
    权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
  6.  
    环境:system_u:object_r:etc_t:s0
  7.  
    最近访问:2022-07-14 15:14:58.014971698 0800
  8.  
    最近更改:2022-07-14 15:14:57.906971702 0800
  9.  
    最近改动:2022-07-14 15:14:57.906971702 0800
  10.  
    创建时间:-

2GPT磁盘管理

一、文件系统结构介绍

学新通

  •  Data Blocks :数据块
    • 存储实体数据
  • inode
    • 存储元数据(大小、类型、权限、时间)
  • inode Bitmap inode位图
    • 标识block的占用情况
  • GDT 全局描述表
    • 每个块组所包含的数据块信息
  • Super Block 超级块
    • block,inode的总量
    • block,inode的使用情况
    • 文件系统挂载情况

学新通

  • 前446字节
    • 操作系统的引导信息
  • 64字节
    • 分区表
      • 记录主分区、扩展分区的信息
      • 每个分区固定占16B
  • 2字节
    • 结束位

1、dd工具

  • 拷贝数据

1)创建测试文件

  1.  
    [root@localhost ~]# dd if=/dev/zero of=/opt/a.txt bs=1M count=800
  2.  
    记录了800 0 的读入
  3.  
    记录了800 0 的写出
  4.  
    838860800字节(839 MB)已复制,1.56682 秒,535 MB/
  5.  
     
  6.  
    [root@localhost ~]# du -h /opt/a.txt
  7.  
    800M /opt/a.txt
  • if=源文件
  • of=目的文件
  • bs=每次导出的数据量
  • count=次数

2)清除引导信息

dd if=/dev/zero of=/dev/sda bs=446

二、GPT格式磁盘分区

1、分区表的类型

  • MBR
    • 主分区、扩展分区、逻辑分区
      • 主分区 扩展分区<=4
    • 单个分区的容量最多只能是2T
    • 分区工具:fdisk
  • GPT
    • 支持2T以上的分区
    • 无分区类型、分区数量的限制
    • 分区工具:parted

2、parted工具的使用

  1.  
    [root@localhost ~]# parted /dev/sdb mklabel gpt
  2.  
     
  3.  
    [root@localhost ~]# parted /dev/sdb mkpart web 100 2T
  4.  
    信息: You may need to update /etc/fstab.
  5.  
     
  6.  
    [root@localhost ~]# parted /dev/sdb mkpart db 2T 4T
  7.  
    信息: You may need to update /etc/fstab.
  8.  
     
  9.  
    [root@localhost ~]# parted /dev/sdb mkpart test 4T 100%
  10.  
    信息: You may need to update /etc/fstab.
  11.  
     
  12.  
    [root@localhost ~]# partprobe /dev/sdb
  13.  
    [root@localhost ~]#
  14.  
    [root@localhost ~]# lsblk | grep "sdb"
  15.  
    sdb 8:16 0 4.9T 0 disk
  16.  
    ├─sdb1 8:17 0 1.8T 0 part
  17.  
    ├─sdb2 8:18 0 1.8T 0 part
  18.  
    └─sdb3 8:19 0 1.3T 0 part

3RAID 磁盘阵列

一、RAID介绍

1、RAID 0 条带卷

  • 组织、使用硬盘的一种方式
  • 将多块物理
    • 提升数据的读写速度
    • 容量是所有硬盘之和
  • 劣势
    • 数据可靠性低

2、RAID 1 镜像卷

  • 至少需要2块硬盘
  • 优势
    • 提升数据的可靠性
  • 劣势
    • 损失1/2的容量
    • 写速度相对低

3、RAID 5 奇偶校验卷

  • 至少3块硬盘
  • 优势
    • 提升数据读写速度、可靠性(校验码)
    • 最多只支持坏1块盘
    • 实际的存储空间
      • 少1块硬盘的容量,用于存储校验码

学新通

4、RAID 6

  • 与RAID 5工作方式类似
  • 最多支持同时损坏2块盘

5、RAID 10

  • 至少4块盘
  • 优势
    • 提升速度,可靠性
    • 容量损失1/2

学新通

三、RAID实现方式

  • 软RAID
    • mdadm命令
  • 硬RAID
    • RAID卡
    • 同品牌、同型号、同厂商的硬盘
    • 硬盘必须是裸设备

四、模拟RAID 5的操作

1、创建RAID 5

  1.  
    [root@localhost ~]# mdadm -C /dev/md1 -n 3 -l 5 /dev/sdc /dev/sdd /dev/sde
  2.  
    mdadm: Defaulting to version 1.2 metadata
  3.  
    mdadm: array /dev/md1 started.
  • -C 创建
  • -l 指定RAID的级别
  • -n 指定磁盘的个数
  1.  
    [root@localhost ~]# cat /proc/mdstat
  2.  
    Personalities : [raid6] [raid5] [raid4]
  3.  
    md1 : active raid5 sde[3] sdd[1] sdc[0]
  4.  
    41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
  5.  
    [===>.................] recovery = 18.4% (3867648/20954112) finish=1.3min speed=203560K/sec

2、使用RAID

  1.  
    [root@localhost ~]# mkfs -t ext4 /dev/md1
  2.  
     
  3.  
    [root@localhost ~]# mkdir /test4
  4.  
    [root@localhost ~]# mount /dev/md1 /test4
  5.  
     
  6.  
    [root@localhost ~]# touch /test4/{1..100}.mp3
  7.  
    [root@localhost ~]# ls /test4/
  8.  
    100.mp3 16.mp3 22.mp3 29.mp3 35.mp3
  1.  
    [root@localhost ~]# df -hT | grep "md1"
  2.  
    /dev/md1 ext4 40G 49M 38G 1% /test4

3、热备盘 Hot Spare

  • 减少故障的修复时间

1) 添加热备盘

  1.  
    [root@localhost ~]# mdadm -a /dev/md1 /dev/sdf
  2.  
    mdadm: added /dev/sdf
  3.  
     
  4.  
    [root@localhost ~]# cat /proc/mdstat
  5.  
    Personalities : [raid6] [raid5] [raid4]
  6.  
    md1 : active raid5 sdf[4](S) sde[3] sdd[1] sdc[0]
  7.  
    41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
  8.  
     
  9.  
    unused devices: <none>

2) 模拟硬盘故障

  1.  
    [root@localhost ~]# mdadm -f /dev/md1 /dev/sdd
  2.  
    mdadm: set /dev/sdd faulty in /dev/md1
  3.  
     
  4.  
    [root@localhost ~]# cat /proc/mdstat
  5.  
    Personalities : [raid6] [raid5] [raid4]
  6.  
    md1 : active raid5 sdf[4] sde[3] sdd[1](F) sdc[0]
  7.  
    41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
  8.  
    [=>...................] recovery = 7.6% (1600128/20954112) finish=1.4min speed=228589K/sec

4LVM逻辑卷管理

一、逻辑卷简介

  • 优势
    • 在线扩容
      • 在不影响数据的情况下、扩展容量
  • 工作流程

学新通

二、逻辑卷相关管理命令

 1、PV相关命令

1)查看PV

  1.  
    [root@localhost ~]# pvscan
  2.  
    PV /dev/sda2 VG centos lvm2 [19.21 GiB / 0 free]
  3.  
    Total: 1 [19.21 GiB] / in use: 1 [19.21 GiB] / in no VG: 0 [0 ]

2)创建PV

命令:pvcreate [磁盘、分区]

2、VG相关命令

1)查看VG

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

2)查看VG的详细信息

  1.  
    [root@localhost ~]# vgdisplay centos
  2.  
    --- Volume group ---
  3.  
    VG Name centos
  4.  
    System ID
  5.  
    Format lvm2
  6.  
    Metadata Areas 1
  7.  
    Metadata Sequence No 3
  8.  
    VG Access read/write
  9.  
    VG Status resizable
  10.  
    MAX LV 0
  11.  
    Cur LV 2
  12.  
    Open LV 2
  13.  
    Max PV 0
  14.  
    Cur PV 1
  15.  
    Act PV 1
  16.  
    VG Size 19.21 GiB //卷组的容量
  17.  
    PE Size 4.00 MiB // PE, 类似于数据块
  18.  
    Total PE 4919 // PE总个数
  19.  
    Alloc PE / Size 4919 / 19.21 GiB // 分配的容量
  20.  
    Free PE / Size 0 / 0 // 剩余的容量
  21.  
    VG UUID l3bjYh-yNWw-uOX6-t2Ar-lef9-Ts1Z-cCnbOI

3)创建VG

命令:vgcreate [vg名称] [pv名称] [pv名称]

3、逻辑卷LV相关命令

1)查看逻辑卷

  1.  
    [root@localhost ~]# lvscan
  2.  
    ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
  3.  
    ACTIVE '/dev/centos/root' [17.21 GiB] inherit

2)创建逻辑卷

命令:lvcreate -L 容量 -n 逻辑卷名称 卷组名称

命令:lvcreate -L 20G -n test mysql

三、案例——创建逻辑卷

要求:/dev/db/mysql 30G ext4 /mysql

注意:先关掉虚拟机,然后加磁盘,再操作

1、创建PV

  1.  
    [root@localhost ~]# pvcreate /dev/sdg /dev/sdh
  2.  
    Physical volume "/dev/sdg" successfully created.
  3.  
    Physical volume "/dev/sdh" successfully created.
  4.  
     
  5.  
    [root@localhost ~]# pvscan
  6.  
    PV /dev/sda2 VG centos lvm2 [19.21 GiB / 0 free]
  7.  
    PV /dev/sdh lvm2 [20.00 GiB]
  8.  
    PV /dev/sdg lvm2 [20.00 GiB]
  9.  
    Total: 3 [59.21 GiB] / in use: 1 [19.21 GiB] / in no VG: 2 [40.00 GiB]

2、创建VG

  1.  
    [root@localhost ~]# vgcreate db /dev/sdg /dev/sdh
  2.  
    Volume group "db" successfully created
  3.  
     
  4.  
    [root@localhost ~]# vgdisplay db
  5.  
    --- Volume group ---
  6.  
    VG Name db
  7.  
    System ID
  8.  
    Format lvm2
  9.  
    Metadata Areas 2
  10.  
    Metadata Sequence No 1
  11.  
    VG Access read/write
  12.  
    VG Status resizable
  13.  
    MAX LV 0
  14.  
    Cur LV 0
  15.  
    Open LV 0
  16.  
    Max PV 0
  17.  
    Cur PV 2
  18.  
    Act PV 2
  19.  
    VG Size 39.99 GiB
  20.  
    PE Size 4.00 MiB
  21.  
    Total PE 10238
  22.  
    Alloc PE / Size 0 / 0
  23.  
    Free PE / Size 10238 / 39.99 GiB
  24.  
    VG UUID UJix94-Mzbd-eqgd-mWj0-cDNN-4H45-FeauOb

3、创建LV

  1.  
    [root@localhost ~]# lvcreate -L 30G -n mysql db
  2.  
    Logical volume "mysql" created.
  3.  
     
  4.  
    [root@localhost ~]# lvscan
  5.  
    ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
  6.  
    ACTIVE '/dev/centos/root' [17.21 GiB] inherit
  7.  
    ACTIVE '/dev/db/mysql' [30.00 GiB] inherit

4、创建文件系统,挂载使用

  • 想创建文件系统,首先需要创建一个空的文件夹,记得重新加载,查询创建的文件系统类型用df -hT | grep "文件名",然后想要验证可以创建文件进行验证:touch /mysql/{1..10}.html
  1.  
    [root@localhost ~]# mkdir /mysql
  2.  
    [root@localhost ~]# mkfs -t ext4 /dev/db/mysql
  3.  
     
  4.  
    [root@localhost ~]# tail -n 1 /etc/fstab
  5.  
    /dev/db/mysql /mysql ext4 defaults 0 0
  6.  
     
  7.  
    [root@localhost ~]# mount -a
  8.  
     
  9.  
    [root@localhost ~]# df -hT | grep "mysql"
  10.  
    /dev/mapper/db-mysql ext4 30G 45M 28G 1% /mysql
  11.  
     
  12.  
    [root@localhost ~]# touch /mysql/{1..10}.sql
  13.  
    [root@localhost ~]# ls /mysql/
  14.  
    10.sql 1.sql 2.sql 3.sql 4.sql 5.sql 6.sql 7.sql 8.sql 9.sql lost found

通过指定PE数量的方式创建逻辑卷

/dev/db/redis xfs /redis 800M

  1.  
    [root@localhost ~]# lvcreate -l 200 -n redis db
  2.  
    Logical volume "redis" created.
  3.  
     
  4.  
    [root@localhost ~]# lvscan
  5.  
    ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
  6.  
    ACTIVE '/dev/centos/root' [17.21 GiB] inherit
  7.  
    ACTIVE '/dev/db/mysql' [30.00 GiB] inherit
  8.  
    ACTIVE '/dev/db/redis' [800.00 MiB] inherit
  1.  
    [root@localhost ~]# df -hT | grep "redis"
  2.  
    /dev/mapper/db-redis xfs 797M 33M 765M 5% /redis
  3.  
    [root@localhost ~]#
  4.  
    [root@localhost ~]# touch /redis/{1..10}.db
  5.  
    [root@localhost ~]# ls /redis/
  6.  
    10.db 1.db 2.db 3.db 4.db 5.db 6.db 7.db 8.db 9.db

四、逻辑卷扩容

1、扩容流程

  • 先扩展物理大小
    • lvextend
  • 在扩展文件系统大小
    • ewsize2fs 
      • 仅适用于ext4/3/2文件系统
    • xfs_grows
      • 适用于xfs文件系统

2、扩展/dev/db/mysql的容量到35G

1)确认卷组剩余空间是都足够

  1.  
    [root@localhost ~]# vgdisplay db | grep -i "free"
  2.  
    Free PE / Size 2358 / 9.21 GiB

2)扩展逻辑卷物理大小

  1.  
    [root@localhost ~]# lvextend -L 5G /dev/db/mysql
  2.  
     
  3.  
    [root@localhost ~]# lvscan
  4.  
    ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
  5.  
    ACTIVE '/dev/centos/root' [17.21 GiB] inherit
  6.  
    ACTIVE '/dev/db/mysql' [35.00 GiB] inherit
  7.  
    ACTIVE '/dev/db/redis' [800.00 MiB] inherit
  8.  
     
  9.  
    [root@localhost ~]# df -hT | grep "mysql"
  10.  
    /dev/mapper/db-mysql ext4 30G 45M 28G 1% /mysql

3)扩展文件系统大小

先查看文件系统类型,选择适合的文件系统进行扩展

  1.  
    [root@localhost ~]# resize2fs /dev/db/mysql
  2.  
    resize2fs 1.42.9 (28-Dec-2013)
  3.  
    Filesystem at /dev/db/mysql is mounted on /mysql; on-line resizing required
  4.  
    old_desc_blocks = 4, new_desc_blocks = 5
  5.  
    The filesystem on /dev/db/mysql is now 9175040 blocks long.
  6.  
     
  7.  
    [root@localhost ~]# df -hT | grep "mysql"
  8.  
    /dev/mapper/db-mysql ext4 35G 48M 33G 1% /mysql

3、将/dev/db/mysql扩容到45GB

1)确认卷组剩余空间

  1.  
    [root@localhost ~]# vgdisplay db | grep -i "free"
  2.  
    Free PE / Size 1078 / 4.21 GiB

2)扩展卷组容量

  1.  
    [root@localhost ~]# pvcreate /dev/sdi
  2.  
    Physical volume "/dev/sdi" successfully created.
  3.  
     
  4.  
    [root@localhost ~]# vgextend db /dev/sdi
  5.  
    Volume group "db" successfully extended
  6.  
     
  7.  
    [root@localhost ~]# vgdisplay db | grep -i "free"
  8.  
    Free PE / Size 6197 / <24.21 GiB

3)扩展逻辑卷

  1.  
    [root@localhost ~]# lvextend -L 10G /dev/db/mysql
  2.  
    Size of logical volume db/mysql changed from 35.00 GiB (8960 extents) to 45.00 GiB (11520 extents).
  3.  
    Logical volume db/mysql successfully resized.
  4.  
     
  5.  
    [root@localhost ~]# resize2fs /dev/db/mysql
  6.  
    resize2fs 1.42.9 (28-Dec-2013)
  7.  
    Filesystem at /dev/db/mysql is mounted on /mysql; on-line resizing required
  8.  
    old_desc_blocks = 5, new_desc_blocks = 6
  9.  
    The filesystem on /dev/db/mysql is now 11796480 blocks long.
  10.  
     
  11.  
    [root@localhost ~]# lvscan
  12.  
    ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
  13.  
    ACTIVE '/dev/centos/root' [17.21 GiB] inherit
  14.  
    ACTIVE '/dev/db/mysql' [45.00 GiB] inherit
  15.  
    ACTIVE '/dev/db/redis' [800.00 MiB] inherit
  16.  
     
  17.  
    [root@localhost ~]# df -hT | grep "mysql"
  18.  
    /dev/mapper/db-mysql ext4 45G 52M 42G 1% /mysql
  19.  
     
  20.  
    [root@localhost ~]# ls /mysql/
  21.  
    10.sql 1.sql 2.sql 3.sql 4.sql 5.sql 6.sql 7.sql 8.sql 9.sql lost found

4、将/dev/db/redis扩容到1000M

  1.  
    [root@localhost ~]# lvextend -L 200M /dev/db/redis
  2.  
    Size of logical volume db/redis changed from 800.00 MiB (200 extents) to 1000.00 MiB (250 extents).
  3.  
    Logical volume db/redis successfully resized.
  4.  
     
  5.  
    [root@localhost ~]# xfs_growfs /redis/
  6.  
    meta-data=/dev/mapper/db-redis isize=512 agcount=4, agsize=51200 blks
  7.  
    = sectsz=512 attr=2, projid32bit=1
  8.  
    = crc=1 finobt=0 spinodes=0
  9.  
    data = bsize=4096 blocks=204800, imaxpct=25
  10.  
    = sunit=0 swidth=0 blks
  11.  
    naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  12.  
    log =internal bsize=4096 blocks=855, version=2
  13.  
    = sectsz=512 sunit=0 blks, lazy-count=1
  14.  
    realtime =none extsz=4096 blocks=0, rtextents=0
  15.  
    data blocks changed from 204800 to 256000
  16.  
     
  17.  
    [root@localhost ~]# lvscan
  18.  
    ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
  19.  
    ACTIVE '/dev/centos/root' [17.21 GiB] inherit
  20.  
    ACTIVE '/dev/db/mysql' [45.00 GiB] inherit
  21.  
    ACTIVE '/dev/db/redis' [1000.00 MiB] inherit
  22.  
     
  23.  
    [root@localhost ~]# df -hT | grep "redis"
  24.  
    /dev/mapper/db-redis xfs 997M 33M 965M 4% /redis

五、逻辑卷缩容

1、注意事项

  • 不支持在线缩容,必须先处于卸载状态
  • 先缩减文件系统大小,再缩减物理大小
  • xfs不支持缩减

2、将逻辑卷/dev/db/mysql缩减到10G

1)卸载逻辑卷

命令:umount /dev/db/mysql

2)检测文件系统是否有损坏

  1.  
    [root@localhost ~]# e2fsck -f /dev/db/mysql
  2.  
    e2fsck 1.42.9 (28-Dec-2013)
  3.  
    第一步: 检查inode,块,和大小
  4.  
    第二步: 检查目录结构
  5.  
    3步: 检查目录连接性
  6.  
    Pass 4: Checking reference counts
  7.  
    5步: 检查簇概要信息
  8.  
    /dev/db/mysql: 21/2949120 files (0.0% non-contiguous), 231191/11796480 blocks

3)先缩减文件系统大小

  1.  
    [root@localhost ~]# resize2fs /dev/db/mysql 10G
  2.  
    resize2fs 1.42.9 (28-Dec-2013)
  3.  
    Resizing the filesystem on /dev/db/mysql to 2621440 (4k) blocks.
  4.  
    The filesystem on /dev/db/mysql is now 2621440 blocks long.

4)在缩减逻辑卷物理大小

  1.  
    [root@localhost ~]# lvreduce -L 10G /dev/db/mysql
  2.  
    WARNING: Reducing active logical volume to 10.00 GiB.
  3.  
    THIS MAY DESTROY YOUR DATA (filesystem etc.)
  4.  
    Do you really want to reduce db/mysql? [y/n]: y
  5.  
    Size of logical volume db/mysql changed from 45.00 GiB (11520 extents) to 10.00 GiB (2560 extents).
  6.  
    Logical volume db/mysql successfully resized.

5)重新挂载逻辑卷,验证数据

  1.  
    [root@localhost ~]# mount /dev/db/mysql /mysql/
  2.  
    [root@localhost ~]# ls /mysql/
  3.  
    10.sql 1.sql 2.sql 3.sql 4.sql 5.sql 6.sql 7.sql 8.sql 9.sql lost found

五、删除逻辑卷

1、删除逻辑卷

命令:lvremove <逻辑卷名称>

2、删除卷组

命令:vgremove <卷组名称>

3、删除物理卷

命令:pvremove <pv名称>


5链接文件

一、类型

1、硬链接

  • 硬链接
    • 本质上就是指向源文件所在的inode的另外一个指针
    • 并不是一个单独的文件

命令:ln 源文件 目的文件

  1.  
    [root@localhost ~]# ls -l /opt/file01
  2.  
    -rw-r--r--. 2 root root 29 718 15:24 /opt/file01
  3.  
     
  4.  
    [root@localhost ~]# ls -l /tmp/AA
  5.  
    -rw-r--r--. 2 root root 29 718 15:24 /tmp/AA

查看文件的inode

  1.  
    [root@localhost ~]# ls -i /opt/file01
  2.  
    192421 /opt/file01
  3.  
    [root@localhost ~]# ls -i /tmp/AA
  4.  
    192421 /tmp/AA

2、软连接/符号链接【常用】

  • 相对于源文件来说,软连接文件是个独立的文件
  • 但软连接中并不保存真实的数据,仅保存源文件名的一个指向

命令:ln -s 源文件 目的文件

  1.  
    [root@localhost ~]# ln -s /opt/file02 /tmp/BB
  2.  
     
  3.  
    [root@localhost ~]# ls -l /opt/file02
  4.  
    -rw-r--r--. 1 root root 9 718 15:26 /opt/file02
  5.  
     
  6.  
    [root@localhost ~]# ls -l /tmp/BB
  7.  
    lrwxrwxrwx. 1 root root 11 718 15:26 /tmp/BB -> /opt/file02
  1.  
    [root@localhost ~]# ls -i /opt/file02
  2.  
    192464 /opt/file02
  3.  
     
  4.  
    [root@localhost ~]# ls -i /tmp/BB
  5.  
    16786690 /tmp/BB

3、硬链接、软连接的区别

  • 软连接
    • 源文件损坏,链接文件失效
    • 支持可以对文件、目录创建软链接
    • 支持跨分区
  • 硬链接
    • 源文件损坏,链接文件 可继续访问
    • 只支持对文件创建
    • 不支持跨分区

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibafck
系列文章
更多 icon
同类精品
更多 icon
继续加载