linux下看不到另外一个分区,linux – 卷管理:如何将空间从一个分区移动到另一个分区?...

我正在设置一个redhat ec2实例,默认情况下我使用的软件(称为qradar)在连接到实例的两个500g ebs存储设备上创建了以下卷:

$lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

storetmp rootrhel -wi-ao---- 20.00g

varlog rootrhel -wi-ao---- <20.00g

store storerhel -wi-ao---- <348.80g

transient storerhel -wi-ao---- <87.20g

$df -h

Filesystem Size Used Avail Use% Mounted on

/dev/xvda2 500G 1.4G 499G 1% /

devtmpfs 16G 0 16G 0% /dev

tmpfs 16G 0 16G 0% /dev/shm

tmpfs 16G 17M 16G 1% /run

tmpfs 16G 0 16G 0% /sys/fs/cgroup

/dev/mapper/storerhel-store 349G 33M 349G 1% /store

/dev/mapper/storerhel-transient 88G 33M 88G 1% /transient

/dev/mapper/rootrhel-storetmp 20G 33M 20G 1% /storetmp

/dev/mapper/rootrhel-varlog 20G 35M 20G 1% /var/log

tmpfs 3.2G 0 3.2G 0% /run/user/1000

我需要我的storetmp为100g.如何将80g存储空间从商店移至storetmp?

似乎我可能需要将一些空间从xvdb3转移到xvdb2:

# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

xvda 202:0 0 500G 0 disk

├─xvda1 202:1 0 1M 0 part

└─xvda2 202:2 0 500G 0 part /

xvdb 202:16 0 500G 0 disk

├─xvdb1 202:17 0 24G 0 part [SWAP]

├─xvdb2 202:18 0 40G 0 part

│ ├─rootrhel-varlog 253:2 0 20G 0 lvm /var/log

│ └─rootrhel-storetmp 253:3 0 20G 0 lvm /storetmp

└─xvdb3 202:19 0 436G 0 part

├─storerhel-store 253:0 0 348.8G 0 lvm /store

└─storerhel-transient 253:1 0 87.2G 0 lvm /transient

请注意,目录正在由盒子上运行的软件使用,并且不是空的,因此删除它们是不可能的,我需要在运行中完成:

$ls -l /dev/mapper/storerhel-transient

lrwxrwxrwx 1 root root 7 Aug 10 16:00 /dev/mapper/storerhel-transient -> ../dm-3

$ls -l /dev/mapper/rootrhel-varlog

lrwxrwxrwx 1 root root 7 Aug 10 16:00 /dev/mapper/rootrhel-varlog -> ../dm-0

$ls -l /dev/mapper/storerhel-store

lrwxrwxrwx 1 root root 7 Aug 17 04:10 /dev/mapper/storerhel-store -> ../dm-2

解决方法:

EC2 EBS中额外的80 GB每月花费不到12美元.在线操作可能需要一个多小时的工作时间,并且如果出现问题可能会导致停机 – 这对您来说有多大价值?

支付一些额外的容量,将其作为第三个磁盘xvdc添加到您的实例,将其初始化为LVM PV(您甚至不必在其上放置分区表:只需pvcreate / dev / xvdc就足够了).然后将新PV添加到rootrhel VG(vgextend rootrhel / dev / xvdc),现在可以使用增加的容量扩展/ storetmp.

lvextend -L +80G /dev/mapper/rootrhel-storetmp

xfs_growfs /storetmp #or the appropriate tool for your filesystem type

解决您的问题后,您现在可以在适当的时间安排一些停机时间.

如果您正在使用XFS文件系统(默认情况下为RHEL / CentOS 7),那么在下一次计划停机期间,您将创建/ store和/ transient的当前内容的tarball,卸载并删除整个storerhel VG,添加其PV xvdb3到rootrhel VG,然后使用更真实的容量需求估计重新创建/ store和/ transient文件系统的LV,并恢复tarball的内容.停机时间结束.

现在你的rootrhel VG有三个PV:xvdb2,xvdb3和xvdc,并有足够的空间满足你的需求.

如果您想停止支付xvdc,可以使用pvmove / dev / xvdc自动将VG中的数据从xvdc迁移到xvdb2和/或xvdb3中的未分配空间.你可以在线完成;只是在高峰I / O工作负载时不要这样做,以避免性能受到影响.然后vgreduce rootrhel / dev / xvdc,echo 1> / sys / block / xvdc / device / delete告诉内核xvdc设备正在消失,然后告诉亚马逊你不再需要你的xvdc磁盘了.

我有近20年使用LVM磁盘存储的经验(首先使用HP-UX LVM,后来使用Linux LVM,一旦成熟到足以在企业环境中使用).这些是我与LVM一起使用的经验法则:

>当一个人足够时,你永远不应该创建两个VG.

特别是,在一个磁盘上安装两个VG很可能是一个会让您头疼的错误.在VG中重新分配磁盘容量与文件系统类型允许的一样灵活;在小于一个已经存在的PV的块中VG之间的移动容量通常不值得麻烦.

>如果您的磁盘空间要求存在不确定性(并且始终存在),请将LV保持在较小的一侧,并保留一些未分配的空间.

只要您的VG具有可用的未分配容量,您就可以根据需要使用一个或两个快速命令在线扩展LV和文件系统.对于受过训练的猴子初级系统管理员来说,这是一个单一的香蕉工作.

如果VG中没有未分配的容量,请获取新磁盘,将其初始化为新PV,将其添加到需要容量的VG,然后照常继续使用扩展.缩小文件系统更容易出错,可能需要停机,甚至可能无法在没有备份的情况下进行.根据文件系统类型重新创建较小的文件系统.因此,您需要避免需要尽可能在线缩小文件系统的情况.

>磁盘空间的微观管理可能存在风险,并且需要做很多工作.工作很昂贵.

好的.从技术上讲,你可以在/ store上创建一个80 GB的文件,然后将它丢失到一个循环设备中,然后将它变成你可以添加到rootrhel VG中的PV ……但这样做会导致系统最有可能掉入启动时的单用户恢复模式,除非您为这些文件系统和VG设置了自定义的启动脚本并在第一时间正确启动.

搞错了,下次你的系统因为任何原因重新启动时你将不得不采取一些意外停机来进行故障排除和修复,或者从头开始更真实地重新创建文件系统并从备份中恢复内容,因为它比尝试排除故障更简单这个陪审团操纵的混乱.

或者,如果您正在使用可以在线缩减的ext4文件系统,您可以缩小/存储文件系统,缩小LV,在任何地方使用pvmove –alloc来将可用空间合并到xvdb3 PV的尾端,缩小PV ,缩小分区,运行partprobe以使更改生效而无需重新启动,然后创建一个新分区xvdb4,将其初始化为新的PV并将其添加到rootrhel VG …

但是如果你在这个序列中犯了一个错误,那么你的文件系统/ PV超出了它的LV /分区容器,并且你的文件系统被切换到只读模式,错误标志只能通过运行文件系统检查来重置,从而导致强制意外停机.

标签:rhel,linux,storage,volume

来源: https://codeday.me/bug/20190810/1638002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值