新加磁盘如何创建逻辑分区

查看命令 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 数据卷磁盘管理的更多相关文章

  1. Linux LVM卷组管理

    Linux LVM卷组管理 由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理. 由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数 ...

  2. Linux文件系统与磁盘管理

    Linux文件系统与磁盘管理 有哪些文件系统: FAT:微软在Dos/Windows系列操作系统中共使用的一种文件系统的总称.       exFAT(Extended File Allocation ...

  3. Linux系统的磁盘管理

    Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...

  4. Linux进阶之磁盘管理及LVM逻辑卷

    本节内容 磁盘管理 LVM 一.磁盘管理 1.硬盘接口 种类及其应用: IDE接口硬盘多用于家用产品,部分应用于服务器 SATA SCSI接口硬盘主要应用于服务器 SAS只在高端服务器上,价格昂贵 2 ...

  5. linux基础之磁盘管理与文件系统

    上面一篇文章(https://www.cnblogs.com/ckh2014/p/7224851.html)介绍了硬盘的基本结构,那么一块磁盘如何应用取存储数据呢? 它的步骤是这样的: 识别硬盘 -- ...

  6. linux 操作系统之磁盘管理

    磁盘管理 存储设备:硬盘 , U盘 , 移动硬盘 , 光盘 , 软件. 组装一台电脑 无法被修改 df -h #查看磁盘分区的情况 , 可用的. 查看磁盘或者目录的内容 df “df” 常用的 “-i ...

  7. Linux浅谈磁盘管理及案例

    磁盘管理 MBR原理图 从该图可理解到为什么主分区只能是四个. 可以不分区,但为了统一管理,提高访问效率 设备不同,生成设备名称不同 管理分区命令: lsblk查看块设备 fdisk创建MBR分区 f ...

  8. linux基本命令之磁盘管理命令(ls,cd,pwd,mkdir,rmdir,clear, touch)

    linux磁盘管理命令 1.ls(list)命令:列出目录内容. 格式:ls [参数][文件或目录] ls -a或-all表示列出所有文件和目录,以点开始的是影藏文件,例如,.bash_history ...

  9. docker数据卷的管理和使用

    数据卷的使用,数据库可以保证如果容器出现问题但是数据不丢失的作用,比如MySQL/date下的数据 或者Nginx根目录下的index.html 查看数据卷 [root@docker ~]# dock ...

  10. LINUX逻辑卷(LVM)管理与逻辑卷分区

    LINUX之逻辑卷管理与逻辑卷扩展 LVM是逻辑卷管理(Logical Volume Manager)的简称,他是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,和直接使用物理存储在管理上相 ...

随机推荐

  1. pytorch MNIST加载已下载的数据集出现问题及解决方法

    import torch import torch.nn as nn from torch.autograd import Variable import torchvision import tor ...

  2. 微信小程序 - canvas实现多行文本 ,实现文本断行

    1.canvas绘制文本坑点 绘制的文本不管多长,永远只有一行,不会断行. 2.解决思路 根据每行文本字数来断行,超出的就向下排列. 由于 canvas绘制文本的语法如下: context.fillT ...

  3. 整理15款实用javascript富文本编辑器

    百度UEditor 官方网址:http://ueditor.baidu.com/website/ UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验 ...

  4. 【C学习笔记】day1-3 判断1000年---2000年之间的闰年

    #include<stdio.h> int main() { for (int y = 1000; y <= 2000; y++) if (y % 100 == 0) { if (y ...

  5. Dashboard是什么意思 Dashboard怎么用?

    Dashboard是什么意思?Dashboard怎么用?可能很多Mac用户朋友都不知道,Dashboard是苹果OS X操作系统的一大特色.是随苹果公司 Mac OS X 10.4 Tiger 操作系 ...

  6. go: go.mod file not found in current directory or any parent directory; see 'go help mod 解决

    go: go.mod file not found in current directory or any parent directory; see 'go help mod go:在当前目录或任何 ...

  7. 网络服务之DHCP与FTP

    目录 DHCP 一.DHCP是什么? 二.DHCP的优点 三.DHCP的分配过程 四.DHCP的工作原理 五.DHCP动态获取实验 FTP 一.FTP是什么? 二.FTP的数据连接模式 三.svftp ...

  8. Linux基础第十章:系统安全及应用

    目录 一.账户安全措施 1.账户管理 2.锁定配置文件 3.清除历史记录 二.sudo 1.sudo概念及优点 2.使用sudo 3.sudo实操演示 4.设置sudo别名 5.sudo特别注意 一. ...

  9. Linux常用指令1

    1.文件和目录的相关指令: ·cd:打开 ·pwd:查看当前所在的目录 ·mkdir:新建目录 ·rmdir:删除目录 ·ls:文件和目录查看 ·cp:复制 ·rm:删除 ·mv:移动 2.文本文件内 ...

  10. 前端通过input 输入框实现动态添加行 , 键盘上下左右点击可同步操作中心位置

    1. input 代码 ,我们项目组的input封装了,不过不影响使用 通过 @keyup 事件绑定show方法,需要将当前行的信息以及index传递,方便操作 另外要单独给这些需要操作的输入框添加c ...