linux 数据卷磁盘管理
新加磁盘如何创建逻辑分区
查看命令 lvs vgs pvs
1: 新建一个分区(partition)
fdisk /dev/sdb
2:创建PV(物理卷)
pvcreate /dev/sdb1
pvs或 pvscan 查看创建物理卷
3:创建VG(卷组)
vgcreate testvg /dev/sdb1
4:查看VG可用空间
vgdisplay
5:建立逻辑卷(LV)
lvcreate -L 10G -n testlv testvg
6:建立文件系统
mkfs.ext4 /dev/sdb1 或者 mkfs - t ext4 /dev/sdb1
7:建立挂载点
mkdir /mnt/data
8:挂载存储
fdist -l 查看磁盘可挂载分区
mount /dev/mapper/testvg-testlv /mnt/data
9:修改fstab配置文件实现自动挂载
vim /etc/fstab
/dev/mapper/testvg-testlv /mnt/data ext4 defaults 1 1
空间扩展 新加磁盘扩展逻辑卷
1: 新建一个分区(partition)
fdisk /dev/sdc
2:创建PV(物理卷)
pvcreate /dev/sdc1
pvs或 pvscan 查看创建物理卷
3:將PV加入到已存在的VG
vgextend testvg /dev/sdc1
4:增加LV的大小
lvresize -L +20G /dev/mapper/testvg-testlv
lvextent -l+100%FREE /dev/mapper/testvg-testlv (扩展百分之百)
刷新磁盘容量
resize2fs /dev/mapper/testvg-testlv
5:減少LV容量
lvresize -L -5G /dev/mapper/testvg-testlv
刷新磁盘容量
resize2fs /dev/mapper/testvg-testlv
#使扩展生效
xfs_growfs /dev/mapper/testvg-testlv
df -hT
注意:扩展磁盘大于2T 需要修改成gpt ##将MBR分区形式转换为GPT分区形式
fdisk /dev/sdc
g n 回车 回车 p w t 31修改模式为linux lvm
PV操作
将扩展块移动到现有物理卷上
使用 pvs 命令检查是否使用了所需的物理卷(我们计划删除 LVM 中的 /dev/sdc 磁盘)。
# pvs -o+pv_used
如果使用了,请检查卷组中的其他物理卷是否有足够的空闲扩展块extent。
如果有的话,你可以在需要删除的设备上运行 pvmove 命令。扩展块将被分配到其他设备上。
# pvmove /dev/sdc
当 pvmove 命令完成后。再次使用 pvs 命令检查物理卷是否有空闲。
# pvs -o+pv_used
如果它是空闲的,使用 vgreduce 命令从卷组中删除物理卷 /dev/sdc。
# vgreduce myvg /dev/sdc
Removed "/dev/sdc" from volume group "vg01"
最后,运行 pvremove 命令从 LVM 配置中删除磁盘。现在,磁盘已经完全从 LVM 中移除,可以用于其他用途。
# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
移动扩展块到新磁盘
如果你在卷组中的其他物理卷上没有足够的可用扩展。使用以下步骤添加新的物理卷。
# fdisk -l
操作系统中检测到磁盘后,使用 pvcreate 命令创建物理卷。
# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created
使用以下命令将新的物理卷 /dev/sdd 添加到现有卷组 vg01 中。
# vgextend vg01 /dev/sdd
Volume group "vg01" successfully extended
现在,使用 pvs 命令查看你添加的新磁盘 /dev/sdd。
# pvs -o+pv_used
使用 pvmove 命令将数据从 /dev/sdc 移动到 /dev/sdd。
# pvmove /dev/sdc /dev/sdd
数据移动到新磁盘后。再次使用 pvs 命令检查物理卷是否空闲。
# pvs -o+pv_used
如果空闲,使用 vgreduce 命令从卷组中删除物理卷 /dev/sdc。
# vgreduce myvg /dev/sdc
Removed "/dev/sdc" from volume group "vg01"
最后,运行 pvremove 命令从 LVM 配置中删除磁盘。现在,磁盘已经完全从 LVM 中移除,可以用于其他用途。
# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
脚本编写
#!/bin/bash
#author: zfy
#time: 2022/9/28
#explain: LVM disk extend
device=$1
if [ ! -n "$device" ]
then
echo "input disk device name"
echo "sh xxx.sh sdb|sdc"
exit 1
fi
vg_name=`vgs |awk 'NR==2{print $1}'` #mount_name=`df -H|awk '{if($1~/mapper/) print $1}'`
ls -l /dev/mapper
echo "需要扩展的是第几行的逻辑卷"
read num
mount_name=`ls /dev/mapper/ |awk "NR==$num {print}"`
echo $device $vg_name $mount_name
create_MBR(){
echo "top1 create disk MBR model"
fdisk /dev/$device <<EOF
n
p t
8e
w lsblk
fdisk -l
EOF
} create_GPT(){
echo "top1 create disk GPT model"
fdisk /dev/$device <<EOF
g
n t
31
w lsblk
fdisk -l
EOF
} extend_disk(){
echo "top2 create pv $device"
if test -e /dev/$device
then
pvcreate /dev/"$device"1
else
echo "device $device nonexistence "
exit 1
fi
echo "top3 pv add vg"
vgextend $vg_name /dev/"$device"1 echo "top4 add vg"
if test -e /dev/mapper/"$mount_name"
then
lvextend -l+100%FREE /dev/mapper/"$mount_name"
else
echo "$mount_name dir nonexistence "
exit 1
fi
echo "top5 refresh vg "
resize2fs /dev/mapper/"$mount_name" echo "top6 take effect vg"
xfs_growfs /dev/mapper/"$mount_name"
df -H
} pv_delete(){
#如果PV已经使用并且有数据要提前移动数据后进行缩减
#pvmove /dev/sdc
pvs -o+pv_used
echo "缩减磁盘大小 M|G|T"
read size
lvresize -L -$size /dev/mapper/"$mount_name" #在vg中删除pv
vgreduce $vg_name /dev/$device"1"
vgs #在pv中删除sdc
pvremove /dev/$device"1"
pvs
resize2fs /dev/mapper/"$mount_name"
xfs_growfs /dev/mapper/"$mount_name"
df -H
lsblk
fdisk -l
} ## 模式选择
echo "Your disk is greater than 2T and not create pv. input gt"
echo "Your disk is less than 2T and not create pv. input lt"
echo "delete new create pv. input delete"
echo "only extend vg. input lvm"
read a
case $a in
gt)
create_GPT
extend_disk
;;
lt)
create_MBR
extend_disk
;;
delete)
pv_delete
;;
extend)
extend_disk
;;
*)
echo "都给提示了还输错,zz"
;;
esac
linux 数据卷磁盘管理的更多相关文章
- Linux LVM卷组管理
Linux LVM卷组管理 由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理. 由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数 ...
- Linux文件系统与磁盘管理
Linux文件系统与磁盘管理 有哪些文件系统: FAT:微软在Dos/Windows系列操作系统中共使用的一种文件系统的总称. exFAT(Extended File Allocation ...
- Linux系统的磁盘管理
Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...
- Linux进阶之磁盘管理及LVM逻辑卷
本节内容 磁盘管理 LVM 一.磁盘管理 1.硬盘接口 种类及其应用: IDE接口硬盘多用于家用产品,部分应用于服务器 SATA SCSI接口硬盘主要应用于服务器 SAS只在高端服务器上,价格昂贵 2 ...
- linux基础之磁盘管理与文件系统
上面一篇文章(https://www.cnblogs.com/ckh2014/p/7224851.html)介绍了硬盘的基本结构,那么一块磁盘如何应用取存储数据呢? 它的步骤是这样的: 识别硬盘 -- ...
- linux 操作系统之磁盘管理
磁盘管理 存储设备:硬盘 , U盘 , 移动硬盘 , 光盘 , 软件. 组装一台电脑 无法被修改 df -h #查看磁盘分区的情况 , 可用的. 查看磁盘或者目录的内容 df “df” 常用的 “-i ...
- Linux浅谈磁盘管理及案例
磁盘管理 MBR原理图 从该图可理解到为什么主分区只能是四个. 可以不分区,但为了统一管理,提高访问效率 设备不同,生成设备名称不同 管理分区命令: lsblk查看块设备 fdisk创建MBR分区 f ...
- linux基本命令之磁盘管理命令(ls,cd,pwd,mkdir,rmdir,clear, touch)
linux磁盘管理命令 1.ls(list)命令:列出目录内容. 格式:ls [参数][文件或目录] ls -a或-all表示列出所有文件和目录,以点开始的是影藏文件,例如,.bash_history ...
- docker数据卷的管理和使用
数据卷的使用,数据库可以保证如果容器出现问题但是数据不丢失的作用,比如MySQL/date下的数据 或者Nginx根目录下的index.html 查看数据卷 [root@docker ~]# dock ...
- LINUX逻辑卷(LVM)管理与逻辑卷分区
LINUX之逻辑卷管理与逻辑卷扩展 LVM是逻辑卷管理(Logical Volume Manager)的简称,他是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,和直接使用物理存储在管理上相 ...
随机推荐
- ALV值存放图标
SPAN { font-family: "新宋体"; font-size: 12pt; color: rgba(0, 0, 0, 1); background: rgba(255, ...
- vector 搜罗最强版
vector 常见用法(以int类型为例) https://www.cnblogs.com/YJthua-china/p/6550960.html 概括描述总体vector,包括内存的探讨 https ...
- mybatis查询返回多条数据
返回User类型的list <select id="queryAllUser" resultType="org.example.entity.User"& ...
- PR / PO审批
PR审批的BAPI 1.单个项目PR审批 CALL FUNCTION 'BAPI_REQUISITION_RELEASE' EXPORTING number = l_banfn rel_code = ...
- MySQL 常用命令(1)------连接、添加用户与授权
一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL 进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码 ...
- py打包工具
库地址: auto-py-to-exe https://pypi.org/project/auto-py-to-exe/ Gooey https://pypi.org/project/Gooey/ 为 ...
- Software--电商平台系统--P1 需求分析
2018-01-11 13:58:43 电商平台 需求 1. 网站的页面展示 页面的布局: Product Catalog (商品目录浏览功能): 首页显示"置顶" 商品: ...
- WPF中向下拉框中绑定枚举体
1.枚举绑定combox的ItemsSourceItemsSource绑定的是个集合值,要想枚举绑定ItemsSource,首先应该想到的是把枚举值变成集合. 方法一:使用资源里的ObjectData ...
- jenkins +docker+python接口自动化之jenkins容器下安装python项目所需要的库(三)
1.场景 1.centos系统,在docker的jenkins容器下安装python项目所需要的包 2.我们目前是搞接口自动化,代码放到码云上,运行环境是jenkins容器下,所以需要在jenkins ...
- Coursera Programming Languages, Part C 华盛顿大学 Week 2
week 2 我们采用一种新的视角来对比 FP 与 OOP,即将问题分解 (decompose) 与实现 (implement) 的方式 OOP Versus Functional Decomposi ...