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

点关注不迷路

目录

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块硬盘
[root@localhost ~]# ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 7月  14 08:41 /dev/sda
  • b  block 块设备文件

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

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

2、查看块设备

命令:lsblk

[root@localhost ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0  800M  0 part /boot
└─sda2            8:2    0 19.2G  0 part 
  ├─centos-root 253:0    0 17.2G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
sdc               8:32   0    5G  0 disk 
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

查看分区的文件系统

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

5、操作磁盘的流程

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

二、管理磁盘分区工具 fdisk

1、使用格式

命令:fdisk 硬盘名称 

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

2、查看磁盘分区

[root@localhost ~]# fdisk -l /dev/sda

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000dfd05

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1640447      819200   83  Linux
/dev/sda2         1640448    41943039    20151296   8e  Linux LVM

三、磁盘分区案例

1、规划

主分区 500M ext4 /web/httpd

逻辑分区 500M ext4 /web/nginx

逻辑分区 500M xfs /web/tomcat

2、创建分区

[root@localhost ~]# fdisk /dev/sdb  
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x56994c62 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+500M
分区 1 已设置为 Linux 类型,大小设为 500 MiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (1026048-10485759,默认为 1026048):
将使用默认值 1026048
Last 扇区, +扇区 or +size{K,M,G} (1026048-10485759,默认为 10485759):
将使用默认值 10485759
分区 2 已设置为 Extended 类型,大小设为 4.5 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (1028096-10485759,默认为 1028096):
将使用默认值 1028096
Last 扇区, +扇区 or +size{K,M,G} (1028096-10485759,默认为 10485759):+500M
分区 5 已设置为 Linux 类型,大小设为 500 MiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (2054144-10485759,默认为 2054144):
将使用默认值 2054144
Last 扇区, +扇区 or +size{K,M,G} (2054144-10485759,默认为 10485759):+500M
分区 6 已设置为 Linux 类型,大小设为 500 MiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x56994c62

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1026047      512000   83  Linux
/dev/sdb2         1026048    10485759     4729856    5  Extended
/dev/sdb5         1028096     2052095      512000   83  Linux
/dev/sdb6         2054144     3078143      512000   83  Linux

命令(输入 m 获取帮助):
命令(输入 m 获取帮助):
命令(输入 m 获取帮助):
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

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

命令:partprobe /dev/sdb

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

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

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

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

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

5、挂载使用

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

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

查看挂载

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

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

使用磁盘存储数据

[root@localhost ~]# touch /web/httpd/{1..10}.html
[root@localhost ~]# ls /web/httpd/
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、文件格式

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

2、实现开机自动挂载

[root@localhost ~]# vim /etc/fstab 
/dev/sdb1	/web/httpd	ext4	defaults	0 0
/dev/sdb5	/web/nginx	ext4	defaults	0 0
UUID=7d9f65e6-deca-4ae0-81ee-d804bd848cca	/web/tomcat	xfs	defaults	0 0

[root@localhost ~]# mount -a 

[root@localhost ~]# lsblk | grep -i "sdb"
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0  500M  0 part /web/httpd
├─sdb2            8:18   0    1K  0 part 
├─sdb5            8:21   0  500M  0 part /web/nginx
└─sdb6            8:22   0  500M  0 part /web/tomcat

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

命令:df - hT

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

六、inode —— i节点

  • 容量
  • inode :文件数量

1)查看磁盘容量

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

2)查看磁盘inode

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

2、inode

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

2GPT磁盘管理

一、文件系统结构介绍

云计算Linux运维——Linux系统管理——磁盘管理_第1张图片

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

云计算Linux运维——Linux系统管理——磁盘管理_第2张图片

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

1、dd工具

  • 拷贝数据

1)创建测试文件

[root@localhost ~]# dd if=/dev/zero of=/opt/a.txt bs=1M count=800
记录了800+0 的读入
记录了800+0 的写出
838860800字节(839 MB)已复制,1.56682 秒,535 MB/秒

[root@localhost ~]# du -h /opt/a.txt 
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工具的使用

[root@localhost ~]# parted /dev/sdb mklabel gpt

[root@localhost ~]# parted /dev/sdb mkpart web 100 2T
信息: You may need to update /etc/fstab.

[root@localhost ~]# parted /dev/sdb mkpart db 2T 4T
信息: You may need to update /etc/fstab.

[root@localhost ~]# parted /dev/sdb mkpart test 4T 100%                   
信息: You may need to update /etc/fstab.

[root@localhost ~]# partprobe /dev/sdb                                    
[root@localhost ~]# 
[root@localhost ~]# lsblk | grep "sdb"
sdb               8:16   0  4.9T  0 disk 
├─sdb1            8:17   0  1.8T  0 part 
├─sdb2            8:18   0  1.8T  0 part 
└─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块硬盘的容量,用于存储校验码

云计算Linux运维——Linux系统管理——磁盘管理_第3张图片

4、RAID 6

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

5、RAID 10

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

云计算Linux运维——Linux系统管理——磁盘管理_第4张图片

三、RAID实现方式

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

四、模拟RAID 5的操作

1、创建RAID 5

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

2、使用RAID

[root@localhost ~]# mkfs -t ext4 /dev/md1 

[root@localhost ~]# mkdir /test4
[root@localhost ~]# mount /dev/md1 /test4

[root@localhost ~]# touch /test4/{1..100}.mp3
[root@localhost ~]# ls /test4/
100.mp3  16.mp3  22.mp3  29.mp3  35.mp3
[root@localhost ~]# df -hT | grep "md1"
/dev/md1                ext4       40G   49M   38G    1% /test4

3、热备盘 Hot Spare

  • 减少故障的修复时间

1) 添加热备盘

[root@localhost ~]# mdadm -a /dev/md1 /dev/sdf
mdadm: added /dev/sdf

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md1 : active raid5 sdf[4](S) sde[3] sdd[1] sdc[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: 

2) 模拟硬盘故障

[root@localhost ~]# mdadm -f /dev/md1 /dev/sdd 
mdadm: set /dev/sdd faulty in /dev/md1

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

4LVM逻辑卷管理

一、逻辑卷简介

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

云计算Linux运维——Linux系统管理——磁盘管理_第5张图片

二、逻辑卷相关管理命令

 1、PV相关命令

1)查看PV

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

2)创建PV

命令:pvcreate [磁盘、分区]

2、VG相关命令

1)查看VG

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

2)查看VG的详细信息

[root@localhost ~]# vgdisplay centos 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.21 GiB      //卷组的容量 
  PE Size               4.00 MiB       // PE, 类似于数据块
  Total PE              4919           // PE总个数
  Alloc PE / Size       4919 / 19.21 GiB    // 分配的容量 
  Free  PE / Size       0 / 0               // 剩余的容量 
  VG UUID               l3bjYh-yNWw-uOX6-t2Ar-lef9-Ts1Z-cCnbOI

3)创建VG

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

3、逻辑卷LV相关命令

1)查看逻辑卷

[root@localhost ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  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

[root@localhost ~]# pvcreate /dev/sdg /dev/sdh 
  Physical volume "/dev/sdg" successfully created.
  Physical volume "/dev/sdh" successfully created.

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

2、创建VG

[root@localhost ~]# vgcreate db /dev/sdg /dev/sdh 
  Volume group "db" successfully created

[root@localhost ~]# vgdisplay db 
  --- Volume group ---
  VG Name               db
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       0 / 0   
  Free  PE / Size       10238 / 39.99 GiB
  VG UUID               UJix94-Mzbd-eqgd-mWj0-cDNN-4H45-FeauOb

3、创建LV

[root@localhost ~]# lvcreate -L 30G -n mysql db
  Logical volume "mysql" created.

[root@localhost ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [17.21 GiB] inherit
  ACTIVE            '/dev/db/mysql' [30.00 GiB] inherit

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

  • 想创建文件系统,首先需要创建一个空的文件夹,记得重新加载,查询创建的文件系统类型用df -hT | grep "文件名",然后想要验证可以创建文件进行验证:touch /mysql/{1..10}.html
[root@localhost ~]# mkdir /mysql
[root@localhost ~]# mkfs -t ext4 /dev/db/mysql

[root@localhost ~]# tail -n 1 /etc/fstab
/dev/db/mysql	/mysql	ext4	defaults	0 0

[root@localhost ~]# mount -a

[root@localhost ~]# df -hT | grep "mysql"
/dev/mapper/db-mysql    ext4       30G   45M   28G    1% /mysql

[root@localhost ~]# touch /mysql/{1..10}.sql
[root@localhost ~]# ls /mysql/
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

[root@localhost ~]# lvcreate -l 200 -n redis db
  Logical volume "redis" created.
 
[root@localhost ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [17.21 GiB] inherit
  ACTIVE            '/dev/db/mysql' [30.00 GiB] inherit
  ACTIVE            '/dev/db/redis' [800.00 MiB] inherit
[root@localhost ~]# df -hT | grep "redis"
/dev/mapper/db-redis    xfs       797M   33M  765M    5% /redis
[root@localhost ~]# 
[root@localhost ~]# touch /redis/{1..10}.db
[root@localhost ~]# ls /redis/
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)确认卷组剩余空间是都足够

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

2)扩展逻辑卷物理大小

[root@localhost ~]# lvextend -L +5G /dev/db/mysql 

[root@localhost ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [17.21 GiB] inherit
  ACTIVE            '/dev/db/mysql' [35.00 GiB] inherit
  ACTIVE            '/dev/db/redis' [800.00 MiB] inherit

[root@localhost ~]# df -hT | grep "mysql"
/dev/mapper/db-mysql    ext4       30G   45M   28G    1% /mysql

3)扩展文件系统大小

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

[root@localhost ~]# resize2fs /dev/db/mysql 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/db/mysql is mounted on /mysql; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 5
The filesystem on /dev/db/mysql is now 9175040 blocks long.

[root@localhost ~]# df -hT | grep "mysql"
/dev/mapper/db-mysql    ext4       35G   48M   33G    1% /mysql

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

1)确认卷组剩余空间

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

2)扩展卷组容量

[root@localhost ~]# pvcreate /dev/sdi
  Physical volume "/dev/sdi" successfully created.

[root@localhost ~]# vgextend db /dev/sdi 
  Volume group "db" successfully extended

[root@localhost ~]# vgdisplay db | grep -i "free"
  Free  PE / Size       6197 / <24.21 GiB

3)扩展逻辑卷

[root@localhost ~]# lvextend -L +10G /dev/db/mysql 
  Size of logical volume db/mysql changed from 35.00 GiB (8960 extents) to 45.00 GiB (11520 extents).
  Logical volume db/mysql successfully resized.

[root@localhost ~]# resize2fs /dev/db/mysql 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/db/mysql is mounted on /mysql; on-line resizing required
old_desc_blocks = 5, new_desc_blocks = 6
The filesystem on /dev/db/mysql is now 11796480 blocks long.

[root@localhost ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [17.21 GiB] inherit
  ACTIVE            '/dev/db/mysql' [45.00 GiB] inherit
  ACTIVE            '/dev/db/redis' [800.00 MiB] inherit

[root@localhost ~]# df -hT | grep "mysql"
/dev/mapper/db-mysql    ext4       45G   52M   42G    1% /mysql

[root@localhost ~]# ls /mysql/
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

[root@localhost ~]# lvextend -L +200M /dev/db/redis 
  Size of logical volume db/redis changed from 800.00 MiB (200 extents) to 1000.00 MiB (250 extents).
  Logical volume db/redis successfully resized.

[root@localhost ~]# xfs_growfs /redis/
meta-data=/dev/mapper/db-redis   isize=512    agcount=4, agsize=51200 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=204800, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 204800 to 256000

[root@localhost ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [17.21 GiB] inherit
  ACTIVE            '/dev/db/mysql' [45.00 GiB] inherit
  ACTIVE            '/dev/db/redis' [1000.00 MiB] inherit

[root@localhost ~]# df -hT | grep "redis"
/dev/mapper/db-redis    xfs       997M   33M  965M    4% /redis

五、逻辑卷缩容

1、注意事项

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

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

1)卸载逻辑卷

命令:umount /dev/db/mysql

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

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

3)先缩减文件系统大小

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

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

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

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

[root@localhost ~]# mount /dev/db/mysql /mysql/
[root@localhost ~]# ls /mysql/
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


5链接文件

一、类型

1、硬链接

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

命令:ln 源文件 目的文件

[root@localhost ~]# ls -l /opt/file01 
-rw-r--r--. 2 root root 29 7月  18 15:24 /opt/file01

[root@localhost ~]# ls -l /tmp/AA 
-rw-r--r--. 2 root root 29 7月  18 15:24 /tmp/AA

查看文件的inode

[root@localhost ~]# ls -i /opt/file01 
192421 /opt/file01
[root@localhost ~]# ls -i /tmp/AA 
192421 /tmp/AA

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

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

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

[root@localhost ~]# ln -s /opt/file02 /tmp/BB 

[root@localhost ~]# ls -l /opt/file02 
-rw-r--r--. 1 root root 9 7月  18 15:26 /opt/file02

[root@localhost ~]# ls -l /tmp/BB 
lrwxrwxrwx. 1 root root 11 7月  18 15:26 /tmp/BB -> /opt/file02
[root@localhost ~]# ls -i /opt/file02 
192464 /opt/file02

[root@localhost ~]# ls -i /tmp/BB 
16786690 /tmp/BB

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

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

你可能感兴趣的:(云计算Linux运维,linux,网络,运维开发,运维,系统架构)