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)的简称,他是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,和直接使用物理存储在管理上相 ...
随机推荐
- 我和Java这些年的故事(五)
时光荏苒,我来到了IBM.和慕名已久的WebSphere Application Server(WAS)打起了交道. 之前我搞过Weblogic,对应用服务器的特性有了一定的了解.但WAS无疑更为庞大 ...
- 互联网公司IT系统架构进化之路
一日,与一高手在茶馆聊天.他问道:在鞋厂剑派这两年,可习的什么高深的剑法?我不由一愣,细细想来,这两年每日练习的都是简单的劈砍动作和一些简练的套路.并没有去练什么高深的剑法.不过鞋厂剑派在江湖上也算小 ...
- 遮罩DIV遮挡住下面元素 下面元素如何触发响应点击事件
遮罩DIV{ pointer-events: none; }
- vulnhub:easy_cloudantivirus靶机
kali:192.168.111.111 靶机:192.168.111.177 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --script=http-enum 192.168. ...
- gRPC中protobuff type和C# type原生标量对应表
查看Microsoft官方文档: Create Protobuf messages for .NET apps | Microsoft Docs
- 简易FTP
老男孩----上海校区 简易FTP 客户端端 import socket import struct import json import os class MYTCPCLIENT: address_ ...
- (jmeter笔记)jmeter监控服务器资源
jmeter版本:5.2.1 jdk版本:1.8.0_191 监控服务器的CPU/memory.IO.硬盘等信息 1.下载jmeter-plugins-manager-1.4.jar 插件,解压之后把 ...
- 关于elementui 面包屑设置
后台管理面包屑 新建组件 <template> <el-breadcrumb separator-class="el-icon-arrow-right"> ...
- 多线程—ThreadLocal
一.ThreadLocal的含义 线程的变量副本(就像命名一样),每个线程隔离. 二.ThreadLocal的结构 每个Thread都有自己的ThreadLocalMap,ThreadLocalMap ...
- python + appium 常用公共方法封装
appium 程序下载安装见之前的帖子:https://www.cnblogs.com/gancuimian/p/16536322.html appium 环境搭建见之前的帖子:https://www ...