热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

移除LVM中的磁盘,给VG增加空间,减少空间

volumegroupvg1包括了三个PV,sda1sdb1sdc1,各600GB的SAS,先发现其中一个SASsdc盘呼哧呼哧的想&#


>volume group vg1包括了三个PV,sda1 sdb1 sdc1,各600GB的SAS,先发现其中一个SAS sdc盘呼哧呼哧的想,猜想快挂了。

vg1上创建了一个lv1,目前有800GB的数据在里面。

我目前想直接将sdc这个盘取出来,在新的盘未到来之前,就用sda sdb。有神马好办法来操作?

直接 vgreduce vg1 /dev/sdc1 , 提示still in use,有神马办法将sdc1上的部分数据copy到前面两个磁盘上去,然后把sdc1从vg1里安全删除掉,取出磁盘呢?


pvmove一下,具体怎么操作如下:

1查看vg中可用空闲空间,
# pvs -o+pv_used //保证vg中其他磁盘可用空间大于需要移除磁盘空间,新盘没到之前,这个是必须的,
2移动 sdc1中的数据,
#pvmove /dev/sdc1

3。查看是否移动成功,
#pvs -o+pv_used //若sdc1已用空间显示零,表示移动成功。

4.vgreduce删除磁盘
vgreduce vg1 /dev/sdc1 //删除sdc1磁盘


1、增加空间
增加空间的命令是:lvextend.有两种方法,一个是指定在现有的空间上增加的大小,一个是指定将现有空间增加到多少。
举例,如果testlv目前的大小是20G
在testlv现有空间的基础上再增加10G
lvextend -L +10G -f -r /dev/testvg/testlv
#此时testlv的大小是30G
将testlv的空间扩大到100G
lvextend -L 100G -f -r /dev/testvg/testlv
#此时testlv的大小是100G
关于lvextend的详细用法,可以用命令lvextend --help查询。
也可以分步操作,先增加lv的大小,再修改文件系统的大小,还以增加10G为例,具体命令为:
lvextend -L +10G /dev/testvg/testlv
resize2fs -f /dev/testvg/testlv 30G
2、减少空间
减少lv空间的操作是有风险的,操作之前一定要做好备份,以免数据丢失。要减少一个lv的空间,必须先减少之上的文件系统的大小。
具体操作顺序是:检查文件系统,减少文件系统大小,减少lv大小。命令依次为:
e2fsck -f /dev/vg/lv
resize2fs /dev/vg/lv newsize 10G
lvreduce -L newsize /dev/vg/lv
也可以用lvreduce一条命令完成。
lvreduce -L newsize -f -r /dev/vg/lv
举例,将testlv的大小减少到10G,分步操作命令如下:
e2fsck -f /dev/testvg/testlv
resize2fs /dev/testvg/testlv 10G
lvreduce -L 10G /dev/testvg/testlv
也可以用下面一条命令实现:
lvreduce -L 10G -f -r /dev/testvg/testlv


转自:http://blog.chinaunix.net/uid-24946452-id-119775.html
http://www.shangxueba.com/jingyan/121397.html



以上内容是参考的  下面是我实验的过程  模拟更换硬盘和缩小空间 都是在虚拟机进行的


首先新建3个pv

新建一个VG 加入3个PV

1
2
3
4
[root@LVS-Master /]# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created



1
2
[root@LVS-Master /]# vgcreate apple /dev/sdb1 /dev/sdc1 /dev/sdd1
  Volume group "apple" successfully created


创建LV 并格式化挂载

1
2
3
4
[root@LVS-Master /]# lvcreate -L 38G -n test apple
  Logical volume "test" created
[root@LVS-Master /]# mkdir lvmtest
[root@LVS-Master /]# mount /dev/apple/test /lvmtest/

现在可以在这个目录下写一些测试文件

1
2
3
4
5
6
7
8
[root@LVS-Master lvmtest]# ps aux > test.text
..................
[root@LVS-Master lvmtest]# pvs
  PV         VG           Fmt  Attr PSize  PFree
  /dev/sda2  vg_lvsmaster lvm2 a--  19.80g     0
  /dev/sdb1  apple        lvm2 a--  19.99g     0
  /dev/sdc1  apple        lvm2 a--  19.99g  1.98g
  /dev/sdd1  apple        lvm2 a--  19.99g 19.99g

因为每块次的大小为19.9G 剩余空间是19.99g+1.98g 我们现在假设磁盘空间不够用来缩小

lv test的空间 我们把test的空间缩小到12G

1
[root@LVS-Master /]# umount /lvmtest/


执行e2fsck -f /dev/apple/test

1
2
3
4
5
6
7
8
[root@LVS-Master /]# e2fsck -f /dev/apple/test
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/apple/test: 16/2490368 files (0.0% non-contiguous), 2298484/9961472 blocks


执行resize2fs /dev/apple/test 12G

1
2
3
4
[root@LVS-Master /]# resize2fs /dev/apple/test 12G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/apple/test to 3145728 (4k) blocks.
The filesystem on /dev/apple/test is now 3145728 blocks long.

执行lvresize -L 12G /dev/apple/test

1
2
3
4
5
6
[root@LVS-Master /]# lvresize -L 12G /dev/apple/test
  WARNING: Reducing active logical volume to 12.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce test? [y/n]: y
  Reducing logical volume test to 12.00 GiB
  Logical volume test successfully resized


再次执行e2fsck -f /dev/apple/test

1
2
3
4
5
6
7
8
[root@LVS-Master /]# e2fsck -f /dev/apple/test
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/apple/test: 16/786432 files (0.0% non-contiguous), 2189523/3145728 blocks

而后挂载文件系统

1
2
3
4
5
6
7
8
9
10
[root@LVS-Master /]# mount /dev/apple/test /lvmtest/
[root@LVS-Master /]# df -H
Filesystem             Size   Used  Avail Use% Mounted on
/dev/mapper/vg_lvsmaster-LogVol01
                        20G   3.9G    15G  21% /
tmpfs                  983M      0   983M   0% /dev/shm
/dev/sda1              204M    34M   159M  18% /boot
/dev/mapper/apple-test
                        13G   8.8G   3.3G  73% /lvmtest
[root@LVS-Master /]#


从以上看来我们的lv   test成功修改为12G 现在的空间是13G 现在进入目录 看看之前创建的文件是否存在.


1
2
3
4
5
6
7
8
9
10
[root@LVS-Master lvmtest]# cd /lvmtest/
[root@LVS-Master lvmtest]# ll
total 8388632
-rw-r--r--. 1 root root 2147479552 Dec  4 20:07 hello.cfg
-rw-r--r--. 1 root root 2147479552 Dec  4 20:08 hello.conf
-rw-r--r--. 1 root root 2147479552 Dec  4 20:08 hello.sh
-rw-r--r--. 1 root root 2147479552 Dec  4 20:06 hello.txt
drwx------. 2 root root      16384 Dec  4 20:02 lost+found
-rw-r--r--. 1 root root       7258 Dec  4 20:12 test.text
[root@LVS-Master lvmtest]#


test文件存在而且内容页是正确的.


现在我们模拟更换磁盘

假设现在/dev/sdb1 出现问题了 我们更换sdb1  sdb1的大小事19.9G 我们看看剩余空间是否够19.9G


1
2
3
4
5
6
root@LVS-Master lvmtest]# pvs
  PV         VG           Fmt  Attr PSize  PFree
  /dev/sda2  vg_lvsmaster lvm2 a--  19.80g     0
  /dev/sdb1  apple        lvm2 a--  19.99g  7.99g
  /dev/sdc1  apple        lvm2 a--  19.99g 19.99g
  /dev/sdd1  apple        lvm2 a--  19.99g 19.99g

我们按到空间还有很多  19.99*2+7.99G


现在我们移除sdb1


1
2
3
4
5
6
[root@LVS-Master lvmtest]# pvmove /dev/sdb1
  /dev/sdb1: Moved: 0.1%
  /dev/sdb1: Moved: 31.1%
  /dev/sdb1: Moved: 63.8%
  /dev/sdb1: Moved: 95.7%
  /dev/sdb1: Moved: 100.0%


移动完成


1
2
3
4
5
6
[root@LVS-Master lvmtest]# pvs -o+used
  PV         VG           Fmt  Attr PSize  PFree  Used
  /dev/sda2  vg_lvsmaster lvm2 a--  19.80g     0  19.80g
  /dev/sdb1               lvm2 a--  19.99g 19.99g     0
  /dev/sdc1  apple        lvm2 a--  19.99g  7.99g 12.00g
  /dev/sdd1  apple        lvm2 a--  19.99g 19.99g     0

我们看到现在sdb1已经完全空余

OK 现在我们从vg移除db1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@LVS-Master lvmtest]# vgreduce apple /dev/sdb1
  Removed "/dev/sdb1" from volume group "apple"
[root@LVS-Master lvmtest]# vgdisplay apple
  --- Volume group ---
  VG Name               apple
  System ID          
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               39.98 GiB
  PE Size               4.00 MiB
  Total PE              10236
  Alloc PE / Size       3072 / 12.00 GiB
  Free  PE / Size       7164 / 27.98 GiB
  VG UUID               LH0hdO-W5op-nz1X-m0jZ-pZcP-VrTc-qpnmGN


我们看到VG的大小已经发生变化  开始的VG大小事19.9G*3  现在是39.98G


现在我们移除物理卷


1
2
3
4
5
6
7
[root@LVS-Master lvmtest]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped
[root@LVS-Master lvmtest]# pvscan
  PV /dev/sdc1   VG apple          lvm2 [19.99 GiB / 7.99 GiB free]
  PV /dev/sdd1   VG apple          lvm2 [19.99 GiB / 19.99 GiB free]
  PV /dev/sda2   VG vg_lvsmaster   lvm2 [19.80 GiB / 0    free]
  Total: 3 [59.79 GiB] / in use: 3 [59.79 GiB] / in no VG: 0 [0   ]


OK我们看到PV已经被移除了 剩下的事情就是更换硬盘  安装  关于安装本人就不在叙述






      本文转自flyingzf  51CTO博客,原文链接:http://blog.51cto.com/flyingzf/1336068,如需转载请自行联系原作者









推荐阅读
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
author-avatar
王漻_957
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有