磁盘管理
2022-10-07 07:56:15 0 举报
AI智能生成
Linux-磁盘管理 raid lvm
作者其他创作
大纲/内容
学习磁盘管理的背景:
数据存储也是网站架构的一大重点!!
数据存储也是网站架构的一大重点!!
硬件角度(基础)
1.存储的读写性能
- 固态硬盘、机械磁盘的抉择
- 固态硬盘、机械磁盘的抉择
2.存储的数据备份,数据安全性
- raid磁盘阵列技术
- raid磁盘阵列技术
3.存储的数据扩容,合理的磁盘容量管理,磁盘满了怎么办
软件角度
系统对存储的优化参数
数据库类软件的优化参数
磁盘容量的查看命令
1.使用df命令对磁盘进行查看
#文件系统类型,挂载点,主要关注的就是我们的根分区
#文件系统类型,挂载点,主要关注的就是我们的根分区
注意 df -h 只能查看已经挂载的磁盘,没有挂载的无法识别
可以利用这点来查看你的磁盘是否挂载成功
df -Th 可以查看磁盘的文件系统类型
2.关于lsblk命令
#列出有几个分区,以及分区的文件系统类型
#列出有几个分区,以及分区的文件系统类型
此时无论是否挂载,都可以查看
lsblk
也可以查看磁盘的分区关系
lsblk -t
参数: -t 显示拓扑结构信息
也可以查看文件系统类型和uuid
lsblk -f
参数: -f 显示文件系统
uuid是挂载之后才会生成的
一个对于硬盘的唯一标识
3.关于fdisk命令
fdisk -l
查看磁盘的详细信息
磁盘维护的业务流程
任务需要完成两个方面
1.保证数据库数据完整的情况下,将用户数据, 迁移到另外一块新硬盘中。
2.考虑到数据会不断增长,用户产生大量博客,新磁盘采用lvm逻辑卷管理,方便日后动态扩容。
处理流程
1.需要一块新硬盘(虚拟机可添加)
2.新硬盘需要做lvm管理
3.数据库迁移(夜间停机维护 凌晨2点)
2.新硬盘需要做lvm管理
3.数据库迁移(夜间停机维护 凌晨2点)
迁移的详细处理
迁移前的准备工作:
- 停止数据库监控
- 停止前端(关闭前端数据入口,比如停用博客发表功能)
- 直接关闭端口或程序都行
- 停止后端(可选)
- 停止mysql数据库(防止数据还在写入、或者锁表)
- 备份数据库(全备)
- 使用cp命令,或者tar命令进行备份,防止文件数据丢失
- 还有一个新的命令,rsync命令,比cp更加的强大
- 停止数据库监控
- 停止前端(关闭前端数据入口,比如停用博客发表功能)
- 直接关闭端口或程序都行
- 停止后端(可选)
- 停止mysql数据库(防止数据还在写入、或者锁表)
- 备份数据库(全备)
- 使用cp命令,或者tar命令进行备份,防止文件数据丢失
- 还有一个新的命令,rsync命令,比cp更加的强大
迁移后的恢复工作:
- 迁移数据到新硬盘(rsync),新硬盘已经做好了lvm,且挂载好了。
- 启动数据库
- 启动前端入口
- 测试数据读写
- 确保数据在,硬盘加上去了,使用正常
- 博客功能重新恢复上线。
- 打开数据库监控
- 迁移数据到新硬盘(rsync),新硬盘已经做好了lvm,且挂载好了。
- 启动数据库
- 启动前端入口
- 测试数据读写
- 确保数据在,硬盘加上去了,使用正常
- 博客功能重新恢复上线。
- 打开数据库监控
关于硬盘的理论知识
磁盘的内部体系
磁盘的工作原理,接口区别,即硬盘本身的东西,以及磁盘的构造
第二部分,了解数据的存储方案,备份方案,扩容方案
raid
数据安全相关,备份,防止数据丢失
lvm
逻辑卷,方便进行扩容
对系统的硬盘进行操作,分区,主分区和逻辑分区
格式化文件系统,创建与挂载
注意:一定要格式化,否则无法使用,无法进行挂载
磁盘的后期的维护
机械硬盘的原理
#机械磁盘内部原理
磁头、磁盘、永磁铁、主轴、音圈马达、空气过滤片、磁头臂
磁头、磁盘、永磁铁、主轴、音圈马达、空气过滤片、磁头臂
#盘片的结构(重点)
1整个硬盘上一般有很多的盘片组成
2每个盘片如同切西瓜一样被“切”成一块一块的扇面
3同时沿着半径的方向被划分成了很多同心圆,就是传说中的磁道
4磁道被扇面切成很多的扇形区域叫做扇区(扇区是从磁盘读出和写入信息的最小单位,通常大小为512字节)
5.多个连续的扇区组合在一起就是块,block ,linux的一个块为8个扇区,4k
2每个盘片如同切西瓜一样被“切”成一块一块的扇面
3同时沿着半径的方向被划分成了很多同心圆,就是传说中的磁道
4磁道被扇面切成很多的扇形区域叫做扇区(扇区是从磁盘读出和写入信息的最小单位,通常大小为512字节)
5.多个连续的扇区组合在一起就是块,block ,linux的一个块为8个扇区,4k
Linux系统规定,一个block只能存放一个文件的内容,
因此文件占用的大小必须是block的整数倍,当有文件
的大小小于一个块,也就是4k,同样也是占用一个block大小。
因此文件占用的大小必须是block的整数倍,当有文件
的大小小于一个块,也就是4k,同样也是占用一个block大小。
这就是一个文件即使只写了一个字符也占4K的原因,显示的是所占磁盘的大小
使用 du -h 来显示
也可以使用 stat 命令来查看所占用的扇区
分区的概念
硬盘分区是就使用分区编辑器(partition editor)将一个硬盘上划分几个独立的逻辑部分,
盘片一旦划分成数个分区,不同类的目录与文件可以存储进不同的分区。
盘片一旦划分成数个分区,不同类的目录与文件可以存储进不同的分区。
- 可以将文件的性质区分得更细,按照更为细分的性质,存储在不同的地方以管理文件
- 但是太多的分区,管理麻烦,所以合适就好
- 通过合理的硬盘分区,有效保护系统盘空间,确实能够提高系统运行速度,再者,硬盘分区也可以有效地对数据进行保护。
- 但是太多的分区,管理麻烦,所以合适就好
- 通过合理的硬盘分区,有效保护系统盘空间,确实能够提高系统运行速度,再者,硬盘分区也可以有效地对数据进行保护。
对于分区需要注意的
- 小于2TB的硬盘,使用mbr分区
- 超过2TB的硬盘,使用GPT分区
- 超过2TB的硬盘,使用GPT分区
MBR分区
在fdisk中称之为dos , gdisk 中称之为msdos
简称`主引导记录`,还可以叫做主引导扇区。
mbr是磁盘里第一个扇区,作用是告诉操作系统怎么加载磁盘顺序,如何开机的!
在MBR磁盘的第一个扇区内保存着`系统启动代码`和硬盘分区表。
优点就是兼容性比较好,缺点就是不支持管理大硬盘结构。
GPT分区(guid)
- GPT分区的硬盘容量几乎无限制
- 分区个数无限制
- 自带磁盘数据保险机制
- 分区个数无限制
- 自带磁盘数据保险机制
硬盘的接口类型
目前常见的接口方面又分为SATA、SAS、MSATA、M.2
sas接口为企业级专业硬盘使用接口,满足高性能、高可靠性。
硬盘命名规则
/dev/sda2
s 硬盘的接口类型,sas/sata
h IDE硬盘
v 虚拟硬盘
d disk 硬盘
a 表示第一块 b 第二块 c 第三块
2 第二个分区
(MBR分区)
fdisk命令分区实践
fdisk命令分区实践
1.给虚拟机,添加硬盘(去京东购买一个新硬盘)
2.查看当前有哪些分区表的信息
lsblk
ls /dev/sd*
fdisk -l
# -l 列出详细的信息
# -l 列出详细的信息
3.磁盘分区结构(重要)
主分区
默认使用的分区表是mbr类型,只能有4个主分区
扩展分区/逻辑分区
第4个是扩展分区,其下可以还分区,但此时已经是逻辑分区了。
逻辑分区的数字从五开始往后
必须先有扩展分区才能使用逻辑分区
4.分区的实践
1.fdisk /dev/sdb
#fdisk 指定的磁盘 对磁盘进行分区操作
#fdisk 指定的磁盘 对磁盘进行分区操作
2.使用指令,去分区实战
#参数含有详解
#参数含有详解
d delete a partition 删除一个分区
n add a new partition 建立一个新的分区
p print the partition table 打印分区表
q quit without saving changes 退出不保存设置
w write table to disk and exit 保存分区表
n add a new partition 建立一个新的分区
p print the partition table 打印分区表
q quit without saving changes 退出不保存设置
w write table to disk and exit 保存分区表
3.分区步骤
p 打印现有分区情况
n 输入n,添加分区
n 输入n,添加分区
p 添加主分区
接下来默认的是第一个主分区
接下来默认的是第一个主分区
#定义分区的大小
#完成主分区和扩展分区
#完成主分区和扩展分区
p primary (1 primary, 0 extended, 3 free) 主分区
e extended 扩展分区
e extended 扩展分区
#接下来需要对逻辑分区进行分配
前提条件是加入了扩展分区
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
l logical (numbered from 5)
###此时的分区还只是在内存中没有写入到实际的磁盘数据中
#还需要输入w,写入磁盘生效
#还需要输入w,写入磁盘生效
一定要写入磁盘,不然直接退出等于0
5.partx刷新分区
当你fdisk分区完了之后,看不到分区的信息,是因为linux内核,还未更新分区表
得使用命令,重新读取磁盘的分区(一般来所分区完成后,不需要操作就能显示)
得使用命令,重新读取磁盘的分区(一般来所分区完成后,不需要操作就能显示)
#重读分区
partx /dev/sdb
partx /dev/sdb
-a 增加制定的分区或读磁盘新增的分区
-d 删除制定或所有的分区
-l 列出分区
-d 删除制定或所有的分区
-l 列出分区
6.查看分区类型
1.fdisk 命令
fdisk -l /dev/sdb
fdisk -l /dev/sdb
2.parted命令看
parted -l
parted -l
7.删除磁盘分区
fdisk /dev/sdb
d
删除分区
删除完成后,记得
w
写入磁盘
d
删除分区
删除完成后,记得
w
写入磁盘
操作硬盘(gpt分区)
parted命令分区GPT
parted命令,可以修改硬盘的分区表类型,不仅仅是gpt分区表类型
parted /dev/sdb
#修改当前硬盘的分区表类型,改为gpt,
注意如下操作会摧毁原有的数据
注意如下操作会摧毁原有的数据
(parted) mklabel gpt
mbr就是修改为 mktable msdos
修改就直接写入了,不会进行询问
使用 p 打印查看
gdisk命令分区gpt类型
gdisk命令(同样支持mbr分区表)。但是默认的为gpt
1.需要额外安装操作,没有自带
yum install gdisk -y
yum install gdisk -y
2.列出对应磁盘的信息
gdisk -l /dev/sdb
gdisk -l /dev/sdb
3.对磁盘进行分区
gdisk /dev/sdc
操作过程同fdisk
4.完成分区后查看分区信息
格式化文件系统
文件系统类型
windows
FAT32
最大只支持单个4G的文件,超过就无法识别
exFAT
exFAT支持Windows和macos,所有u盘建议格式为它
NTFS
没有限制,所以,限制Windows上的分区基本为 ntfs
Linux
XFS
centos7开始默认文件系统
Ext2/3/4
目前只有 ext4在用,其余的已经弃用了
MAC
APFS
exFAT
兼容
mkfs格式化文件系统
mkfs命令:mkfs 把分区格式化为某种文件系统
fsck 命令,修复文件系统的命令,根目录会在开机时自动检测
默认读取/etc/fstab 开机挂载文件的,进入查看,最后一位为零就是开机自动检查的
格式化实战
给这个分区,分别格式化xfs文件系统
mkfs.xfs /dev/sdc1
给这个分区,分别格式化ext4文件系统
mkfs.ext4 /dev/sdb1
挂载(mount)
.挂载一个目录,到这个分区,即可使用该分区,存储数据了
挂载其实是最后一步
挂载其实简单理解,建立一个目录,将其与建立的分区进行联系,是数据写入到分区,而不是写入到根目录所在的磁盘。
挂载点,其实就是一个磁盘数据出入的点,一个连接点,连接系统和磁盘
原来的目录下的文件无法读取的了,但是取消后恢复
挂载实践
#创建一个文件夹,并且对其进行挂载
mkdir /opt/my_sdc/
先创建一个挂载点,也可以用已有的,最好为空目录
mount /dev/sdc1 /opt/my_sdc/
将分区和对应的目录进行连接,挂载
查看挂载情况
#查看挂载信息
#查看挂载信息
mount -l | grep sdc1
设置永久挂载
#上述的mount挂载命令是临时生效,需要开机就让系统自动挂载,方可实现,永久生效
#默认读取/etc/fstab 开机挂载文件
#上述的mount挂载命令是临时生效,需要开机就让系统自动挂载,方可实现,永久生效
#默认读取/etc/fstab 开机挂载文件
编辑 /etc/fstab文件即可
[yuchao-linux01 root /opt]$tail -1 /etc/fstab
/dev/sdc1 /opt/my_sdc xfs defaults 0 0
[yuchao-linux01 root /opt]$tail -1 /etc/fstab
/dev/sdc1 /opt/my_sdc xfs defaults 0 0
也可以使用uuid进行挂载
lsblk -f
blkid
ll /dev/disk/by-uuid/
是一个软连接指向
重启机器,查看是否开机就能自动挂载,读取到/dev/sdc1磁盘的数据
取消挂载
umount 挂载点
umount 挂载的磁盘
注意:#注意点
1.在挂载后,会隐藏文件夹本身的文件数据,所以挂载的最好是空的目录
2.目录了显示的是挂载后的设备里的数据
1.在挂载后,会隐藏文件夹本身的文件数据,所以挂载的最好是空的目录
2.目录了显示的是挂载后的设备里的数据
磁盘信息补充
挂载的概念
Linux 下设备不挂载不能使用
挂载**通常是将一个`存储设备`挂接到一个已经存在的`目录`上,访问这个`目录`就是访问该存储设备的内容。
挂载注意事项
1.一个目录、同一时间只能被一个设备挂载
2.一个设备可以挂载多个目录
3.如果一个目录被多个设备挂载,只能看到最后一个挂载的设备数据,其他的设备数据会被隐藏。
4.工作里建议用新的文件夹,作为挂载点。
mount
-l 显示系统以挂载的设备信息
查询电脑的硬盘挂载情况
mount -l | grep xxx
-a 加载文件/etc/fstab中设置的所有设备
更新了 /etc/fstab文件后,可以使用
mount -a
-o 添加挂载选项,是安全、性能优化重要参数
#挂载后只读
mount -o ro /dev/sdb /test-mount
mount -o ro /dev/sdb /test-mount
#允许执行二进制文件
mount -o exec,rw /dev/sdb /test-mountb
mount -o exec,rw /dev/sdb /test-mountb
#不允许执行二进制文件
mount -o noexec,rw /dev/sdb /test-mountb
mount -o noexec,rw /dev/sdb /test-mountb
一般不会去修改,使用的都是defaults
遇到新加磁盘每显示
先cd到/sys/class/scsi_host/目录
cd /sys/class/scsi_host/
这里有三个子目录
三个文件如下
host0 host1 host2
#执行如下命令
#执行如下命令
echo "- - -" > host0/scan
‘- - -’代表channel,target和LUN编号。
表示重新进行扫描
执行后查看硬盘信息
fdisk -l
如果厉害没有识别,继续执行
echo "- - -" > host1/scan
echo "- - -" > host2/scan
取消挂载umount
直接取消挂载点,或者挂载的磁盘都行
umount /my_sdb7/
取消挂载的前提
当该设备无人使用时
无进程在使用时
可以正常卸载
无进程在使用时
可以正常卸载
常常遇见的坑
此时你还在挂载的目录下,是无法取消挂载的
1.先退出所在文件夹
2.umount用于取消已经挂载的设备
2.umount用于取消已经挂载的设备
该目录中有人在访问
1.让那人离开目录
2.干掉操作该目录的进程
2.干掉操作该目录的进程
#先查看那些进程在使用
lsof /my_sdb7/
#查看到pid
kill -9 47861
lsof /my_sdb7/
#查看到pid
kill -9 47861
umount /my_sdb7/
lsof命令
lsof(list open files)是一个列出当前系统打开文件的工具。
列出某个用户打开的所有文件
lsof -u zhangy
列出那个文件有那些人或进程在使用
lsof /usr/sbin/httpd
查找某个程序打开的所有文件
lsof -c httpd
开机自动挂载
#查看设备的信息
blkid /dev/sdb7
#会拿到uuid,写入到文件中
vim /etc/fstab
#也可以是设备名称
#挂载所有设备,/etc/fstab
mount -a
语法: 需要挂载的设备(uuid或设备路径) 挂载点 挂载的文件系统类型 挂载参数(default) 是否备份(0) 是否检查(0)
dd命令
复制文件,且进行数据格式转换。
常用语法
if=file 从 file 中读而不是标准输入。
of=file 写到 file 里去而不是标准输出
bs=size 单个写入文件的大小,不能超过你的内存大小
count=N 执行几次
常用于创建一个比较大的测试文件
dd if=/dev/zero of=/opt/1G.txt2 bs=100M count=10
在/opt/下建立一个2G大小的文件
备份文件
dd if=/dev/hdx of=/dev/hdy
#将本地的/dev/hdx整盘备份到/dev/hdy
特殊设备文件
/dev/null
代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失
比较常见的用法是把不需要的输出重定向到这个文件
ping yuchaoit.cn > /dev/null &
/dev/zero
零”设备,可以无限的提供空字符
常用来生成一个特定大小的文件
/dev/random
/dev/urandom
/dev/urandom
dev/random和/dev/urandom是Linux系统中提供的随机伪设备,
这两个设备的任务,是提供永不为空的随机字节数据流
这两个设备的任务,是提供永不为空的随机字节数据流
实现类似于shred粉碎文件的作用
dd bs=1M count=30 if=/dev/urandom of=./t1
销毁硬盘分区数据
dd if=/dev/urandom of=/dev/sda5
U盘挂载
安装工具包
yum install usbutils -y
查看u盘设备
lsusb
查看u盘信息
fdisk -l /dev/sdb
可以安装工具包,读取ntfs格式的u盘
yum install ntfs-3g -y
raid磁盘阵列
raid冗余阵列
这是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组。
磁盘冗余阵列,就是将很多块硬盘组合成一个整体,
不同的RAID级别,可以实现不同的功能如加速数据读写、如实现数据备份。
Raid特性
是能够保证数据安全性的
但是也增加了从盘的成本
raid除了能够保证数据丢失造成的严重
raid的模式
-- standalone 独立模式:一块硬盘单独的工作,读写数据
-- hot swap 热备份模式 :两个硬盘的数据一样,当一个硬盘出现问题,可以直接将好的换上去
-- cluster 集群模式: 多台机器提供服务,坏了一台机器无所谓
raid的级别
RAID 0
至少需要两块磁盘
==高的读写性能==,100%==高存储空间利用率==
磁盘阵列的总容量便是多个硬盘的总和
数据==没有冗余策略==,一块磁盘故障,数据将无法恢复
应用场景
对性能要求高但对数据安全性和可靠性要求不高的场景
比如音频、视频等的存储。
RAID 1
至少需要2块磁盘
==可靠性高==,磁盘利用率为50%
同时写入多个硬盘
读性能可以,但写性能不佳,写入数据要同步,因此速度很慢。
需要同时向两个盘写入
读,可以同时从两个盘读取
一块磁盘故障,不会影响数据的读写
对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。
RAID 5
至少需要3块磁盘
==读写性能好==,磁盘利用率为(n-1)/n
因为有一个磁盘内存储的是数据的异或值
一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据
兼顾了存储性能、数据安全和存储成本等各方面因素
异或的概念
多个值的异或计算概念:1的个数是奇数,结果则为1,1的个数为偶数,结果则为0
AxorBxorC A异或B异或C
异或的作用:只要知道异或的结果,任何一个值的的结果都能够被反推出来,且计算机的数据只有0和1。
raid 6
比起raid5提供的数据校验,又多了一层校验,双层校验。
最多允许两块盘损坏,或故障
由于多了一层校验,运算的负担比较到
所有raid6 的读写性能不如raid5
N块盘组成,逻辑容量为N-2块盘容量之和;
至少得有4块盘
Raid 10
RAID10是raid1+raid0的组合
两块硬盘为一组先做raid1,再将做好raid1的两组做raid0
千万先组rai1,再建立raid0 不然速度不快
至少需要4块磁盘
Main Topic
兼顾==数据的冗余==(raid1镜像)
==读写性能==(raid0数据条带化)
此raid10是最实用的方案。
但是成本也最高,利用率50%
只要坏的不是同一个组中,所有的硬盘,就算坏掉一半硬盘都不会丢数据。
成本较高,需要较多的磁盘设备,对于企业来说,最核心的就是数据,成本不是问题。
raid 的区别
1. 软RAID
软RAID运行于==操作系统底层==
省钱,但是基本只是测试使用
虚拟成虚拟磁盘,再提交给管理程序来进行管理
占用内存空间
占用CPU资源
如果程序或者操作系统故障就无法运行
2. 硬RAID
通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡
直接购买raid阵列卡即可按照说明配置
raid卡 可能成本高点,但是更加的可靠实用
软raid10的搭建实践
.准备4块硬盘,切记,是新的四块硬盘
没有任何分区的
可以使用fldisk删除分区
也可以使用 paarted 来清除原有分区
安装raid命令,创建raid10
yum install mdadm -y
mdadm命令
-C 用未使用的设备,创建raid
-D 显示阵列详细信息
-S 停止RAID阵列
-v 显示过程
-a yes or no,自动创建阵列设备
-f 移除设备
-l 指定raid级别
创建磁盘阵列
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
/dev/md0 指定raid阵列的名字
最后跟着四块磁盘设备名
挂载和使用
查看磁盘信息
fdisk -l /dev/md0
格式化文件系统可以用了
mkfs.xfs /dev/md0
查看磁盘阵列组的详细信息
df- h
mdadm -D /dev/md0
故障信息查看
剔除一块硬盘,查看磁盘组是否还可以使用
mdadm /dev/md0 -f /dev/sdd
再去查看磁盘信息 mdadm -D /dev/md0
磁盘任然正常使用,但是会显示一块磁盘有问题
故障修复
先取消RAID10阵列的挂载
注意判断是否在文件夹内,或者有人在使用
cd
切出目录
lsof /md0_disk/
kill -9 8101
umount /md0_disk/
没人使用直接取消挂载
umount /dev/md0
重启机器
reboot
重新添加新的磁盘加入raid 10
mdadm /dev/md0 -a /dev/sdd
mdadm -D /dev/md0
删除软件raid
1.卸载磁盘
umount /dev/md0
2.停止raid服务
mdadm -S /dev/md0
3.卸载raid中所有硬盘
[root@juejiang ~]# mdadm --misc --zero-superblock /dev/sdb
[root@juejiang ~]# mdadm --misc --zero-superblock /dev/sdc
[root@juejiang ~]# mdadm --misc --zero-superblock /dev/sdd
[root@juejiang ~]# mdadm --misc --zero-superblock /dev/sde
[root@juejiang ~]# mdadm --misc --zero-superblock /dev/sdc
[root@juejiang ~]# mdadm --misc --zero-superblock /dev/sdd
[root@juejiang ~]# mdadm --misc --zero-superblock /dev/sde
4.删除raid配置文件
rm -f /etc/mdadm.conf
5.删除开机自动挂载配置
修改/etc/fstab
/dev/md0 /yuchao-linux xfs defaults 0 0 #删除
/dev/md0 /yuchao-linux xfs defaults 0 0 #删除
lvm逻辑卷
什么是lvm
逻辑卷管理
是一种将一个或多个硬盘的分区在逻辑上集合
相当于一个大硬盘来使用
可以继续将其它的硬盘的分区加入其中
实现一种磁盘空间的动态管理
关于raid的局限
你需要扩容分区的内容时,需要将已有数据备份后才能更新或添加
分区后,硬盘的容量基本上就是固定了的,调整磁盘空间很麻烦
不同的分区相对独立,没有关系,可能空间利用率很低
它是建立在**==物理存储设备==**之上的一个抽象层,优点在于**灵活**管理。
创建类型
基于分区创建lvm
硬盘的`多个分区`由lvm统一为`卷组`
可以弹性的调整卷组的大小,充分利用硬盘容量
文件系统创建在逻辑卷上,逻辑卷可以根据需求改变大小
基于硬盘创建lvm
多块硬盘做成逻辑卷,将整个逻辑卷统一管理
可以动态对分区进行扩缩空间容量
lvm 的工作流程
硬盘disk1
PV1
硬盘disk2
PV2
硬盘disk3
PV3
lvm 名词解释
PP(Physical Parttion):物理分区,LVM建立在物理分区之上
PV(Physical Volume):物理卷,处于LVM最底层,一般一个PV对应一个PP
pvcreate
第一步
PE(physical Extends):物理区域,PV中可以用于分配的最小存储单元
VG(Volume Group):卷组,建立在PV之上,可以划分多个PV
vgcreat
第二步
LE(Logical Extends):逻辑扩展单元,组成LV的基本单元,一个LE对应一个PE
LV(Logical Volume):逻辑卷,建立在VG之上,是一个可以动态改变大小的分区
lvcreate
第三步
lvm重点概念
物理卷
物理卷是底层==真正提供容量==,存放数据的设备,它可以是整个硬盘、硬盘上的分区等。
卷组
卷组建立在物理卷之上,它由==一个或多个物理卷==组成。即把物理卷整合起来提供容量分配。 一个LVM系统中可以只有一个卷组,也可以包含多个卷组。
逻辑卷
逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。**它是==最终用户使用的逻辑设备。逻辑卷创建之后,其==大小可以伸缩==。
物理区域 PE
基本单元,具有唯一编号的PE是能被LVM寻址的最小单元
lvm扩容原理
剔除原本LV中的PE,就可以减少LV的容量
把其他PE添加到LV,就可以扩容LV容量
一般默认PE大小是4M,LVM最多有65534个PE,所以LVM最大的VG是256G单位
PE是LVM最小的存存储单位,类似文件系统的block单位,因此PE大小影响VG容量
最核心,最本质的
就是对PE的加减来实现容量的增减
LVM优点
文件系统可以跨多个磁盘,大小不会受到磁盘限制
可在系统运行的情况下,动态扩展文件系统大小
可以增加新的磁盘到LVM的存储池中
lvm逻辑卷的使用
命令管理
物理卷(pv)管理
pvcreate 创建物理卷
pvscan 查看物理卷信息
pvdisplay 查看各个物理卷的详细参数
pvremove 删除物理卷
pvscan 查看物理卷信息
pvdisplay 查看各个物理卷的详细参数
pvremove 删除物理卷
1.安装命令工具
#前提是需要安装lvm命令
yum install lvm2 -y
2.将分区/dev/sdb创建为物理卷
pvcreate /dev/sdb
pvcreate /dev/sdb
3.使用pvs查看物理卷信息
pvs 或者 pvscan
pvs 或者 pvscan
4.删除pv
pvremove /dev/sdb
pvremove /dev/sdb
如果之前的磁盘,已经使用过,进行过分区,那你可能会出现提示
#直接将之前的dos标签擦除即可
#再次取消pv后,磁盘会变为新添加的状态,没有类型标签!!!
#再次取消pv后,磁盘会变为新添加的状态,没有类型标签!!!
#是否可以用于清除磁盘标签?
卷组(VG)管理
vgcreate 创建卷组
vgscan 查看卷组信息
vgdisplay 查看卷组的详细参数
vgreduce 缩小卷组,把物理卷从卷组中删除
vgextend 扩展卷组,把某个物理卷添加到卷组中
vgremove 删除卷组
vgscan 查看卷组信息
vgdisplay 查看卷组的详细参数
vgreduce 缩小卷组,把物理卷从卷组中删除
vgextend 扩展卷组,把某个物理卷添加到卷组中
vgremove 删除卷组
逻辑卷(LV)管理
vcreate 创建逻辑卷
lvscan 查看逻辑卷信息
lvdisplay 查看逻辑卷的具体参数
lvextend 增大逻辑卷大小
lvreduce 减小逻辑卷大小
lvremove 删除逻辑卷
lvscan 查看逻辑卷信息
lvdisplay 查看逻辑卷的具体参数
lvextend 增大逻辑卷大小
lvreduce 减小逻辑卷大小
lvremove 删除逻辑卷
lvm 创建
1.安装lvm
yum install lvm2 -y
yum install lvm2 -y
2.查看pv
pvs
pvs
3.创建pv
pvcreate /dev/sdb /dev/sdc /dev/sdd
格式化四个磁盘
pvcreate /dev/sdb /dev/sdc /dev/sdd
格式化四个磁盘
4.查看创建后的pv
pvs
pvs
5.查看vg
vgs
vgs
6.创建vg sdb sdc创建为卷组,名字是 vg1-lxh
#vgcreate + 创建的卷组名 + 物理磁盘1 物理磁盘2 ····
vgcreate vg-lxh /dev/sdb /dev/sdc /dev/sdd
#vgcreate + 创建的卷组名 + 物理磁盘1 物理磁盘2 ····
vgcreate vg-lxh /dev/sdb /dev/sdc /dev/sdd
7.查看创建后的vg
vgs
vgs
8.查看lv
lvs
lvs
9.创建lv(创建分区),一个lv1 10G,lv2 15G ,lv3 25G
lvcreate -n lv1 -L 10G vg-lxh
lvcreate -n lv2 -L 15G vg-lxh
lvcreate -n lv3 -L 25G vg-lxh
lvcreate -n lv1 -L 10G vg-lxh
lvcreate -n lv2 -L 15G vg-lxh
lvcreate -n lv3 -L 25G vg-lxh
10.查看lv
lvs
lvs
11.给lv格式化文件系统
mkfs.xfs /dev/vg-lxh/lv1
mkfs.ext4 /dev/vg-lxh/lv3
mkfs.xfs /dev/vg-lxh/lv1
mkfs.ext4 /dev/vg-lxh/lv3
12.挂载lv
mount 设备名 挂载点
mount 设备名 挂载点
12.开机自动挂载
vim /etc/fstab
vim /etc/fstab
#一定切记,如果你的设备发生了变化,一定要去修改/etc/fstab,否则系统开机,读取该fstab文件,找不到设备,无法正确挂载就会报错
vim /etc/fstab
可以使用uuid 也可以使用设备名(路径)
lvm 扩容(vg容量够)
1.确认vg够不够
vgs
vgs
查看VFree
2.确认够用,直接lvextend扩容lv逻辑卷即可
-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数)
-l 指定逻辑卷的大小(LE数)
lvextend -L 20G /dev/vg-lxh/lv2
推荐使用这个,不要加减不会出错
3.扩容完成之后需要更新文件系统,大小才会显示正常
xfs_growfs /dev/vg-lxh/lv2 #xfs系统
resize2fs /dev/dm-2 # ext4文件系统
lvm 扩容 (vg容量不够)
1.创建新物理卷,pv
关机、添加硬盘,开机
关机、添加硬盘,开机
对标,你买个新硬盘插上服务器
2.给硬盘pv化
pvcreate /dev/sde
pvcreate /dev/sde
3.vg扩容
#vgextend 扩展卷组,把某个物理卷添加到卷组中
#vgextend 扩展卷组,把某个物理卷添加到卷组中
vgextend vg-lxh /dev/sde
4.后续接着lv扩容即可
删除lvm
1.先考虑/etc/fstab,清除开机自动挂载的配置
vim /etc/fstab
vim /etc/fstab
2.取消挂载
umount /test1
umount /test1
3.依次删除lvm的组件
#删除逻辑卷lv 支持多个逻辑卷删除
#删除逻辑卷lv 支持多个逻辑卷删除
lvremove /dev/vg-lxh/lv2 /dev/vg-lxh/lv3
4.删除卷组
vgremove vg-lxh
vgremove vg-lxh
5.删除物理卷,还原磁盘类型
pvremove /dev/sdb /dev/sdc /dev/sdd /dev/sde
pvremove /dev/sdb /dev/sdc /dev/sdd /dev/sde
0 条评论
下一页
为你推荐
查看更多