LVM

pv ##物理卷
被lv命令处理过的物理分区
vg ##物理卷组
被组装到一起的物理卷
pe ##图里扩展
lvm设备的最小存储单元lvm时pe的整数倍
lvm ##逻辑卷
直接使用的设备,可以增大缩减并保持原有数据不变

#lvm建立
1.分区并设定分区标签为8e
pvcreate /dev/vdb6
pvcreate /dev/vdb7
vgcreate vg0 /dev/vdb6
vgextend vg0 /dev/vdb7
lvcreate -L 50M -n lv0 vg0
lvextend -L 100M /dev/vg0/lv0
mkfs.xfs /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
df -H /mnt/
在这里插入图片描述
在这里插入图片描述

#lvm扩展
1.先添加一个新的pv
[root@server_sshd ~]# pvcreate /dev/vdb8
2.再将新的片v添加到vg0中
[root@server_sshd ~]# vgextend vg0 /dev/vdb8
3.最后扩展文件系统
[root@server_sshd ~]# lvextend -L 500M /dev/vg0/lv0
在这里插入图片描述
在这里插入图片描述

#lvm的收缩
注意:之前操作都是在xfs文件格式下,该文件格式只支持扩展,因此我们要先重新格式话为ext4格式
1.首先卸载umount /mnt,格式化为ext4格式并扫描
[root@server_sshd ~]# umount /mnt
[root@server_sshd ~]# mkfs.ext4 /dev/vg0/lv0
2.先缩减文件系统(必须,否则整个系统崩溃)
resize2fs /dev/vg0/lv0 300M
3.最后缩减lv
[root@server_sshd ~]# lvreduce -L 300M /dev/vg0/lv0
4.清除多余pv
[root@server_sshd ~]# pvmove /dev/vdb7 /dev/vdb8
[root@server_sshd ~]# vgreduce vg0 /dev/vdb7
[root@server_sshd ~]# pvremove /dev/vdb7
在这里插入图片描述
在这里插入图片描述

#lvm快照
1.卸载umount /mnt
[root@server_sshd ~]# umount /mnt
2.制作快照
[root@server_sshd ~]# lvcreate -L 50M -n /dev/vg0/lv0_snap -s /dev/vg0/lv0
3.将快照挂载
[root@server_sshd ~]# mount /dev/vg0/lv0_snap /mnt
在这里插入图片描述

#删除快照
1.卸载umount /mnt
[root@server_sshd ~]# umount /mnt
2.移除lv,vg,pv
[root@server_sshd ~]lvremove /dev/vg0/lv0_snap
[root@server_sshd ~]lvremove /dev/vg0/lv0
[root@server_sshd ~]# vgremove vg0
[root@server_sshd ~]# pvremove /dev/vdb6
[root@server_sshd ~]# pvremove /dev/vdb8
3.将lvm分区删除

06-19
### LVM in Linux: Configuration, Management, and Troubleshooting LVM (Logical Volume Manager) is a powerful tool in Linux that allows for flexible disk management. It provides a layer of abstraction over physical disks, enabling dynamic resizing and allocation of storage resources. Below is an overview of configuration, management, and troubleshooting aspects of LVM. #### Configuration of LVM To configure LVM, the process involves creating physical volumes, volume groups, and logical volumes. When using LVM with initramfs, specific hooks must be added to ensure proper initialization during boot. For systemd-based initramfs, the file `/etc/mkinitcpio.conf` should be edited to include the `sd-lvm2` hook[^1]. This ensures that the system can recognize and mount LVM volumes during the boot process. The updated line in the configuration file would look like this: ```bash HOOKS=(base systemd ... block sd-lvm2 filesystems) ``` For busy-box based initramfs, the `lvm2` hook should be added instead of `sd-lvm2`. #### Management of LVM Managing LVM involves several key operations such as creating, extending, and reducing logical volumes. These operations are performed using commands like `pvcreate`, `vgcreate`, `lvcreate`, `lvextend`, and `lvreduce`. Here is an example of creating a logical volume: ```bash # Create a physical volume pvcreate /dev/sdb # Create a volume group named 'myvg' vgcreate myvg /dev/sdb # Create a logical volume named 'mylv' with a size of 10GB lvcreate -L 10G -n mylv myvg ``` Once created, file systems can be formatted on the logical volumes and mounted as needed. #### Troubleshooting LVM Troubleshooting LVM often involves resolving issues related to volume recognition, mounting, or resizing. Common problems include missing devices, incorrect configurations, or insufficient space. Tools like `lvdisplay`, `vgdisplay`, and `pvdisplay` can help diagnose issues by providing detailed information about the current state of LVM components. For instance, if a logical volume fails to mount, checking the status of the volume group and logical volume can provide insights: ```bash # Display information about the volume group vgdisplay myvg # Display information about the logical volume lvdisplay /dev/myvg/mylv ``` If the issue persists, verifying the integrity of the file system using tools like `fsck` may be necessary. ```bash fsck /dev/myvg/mylv ``` #### Example Playbook for Automating LVM Tasks with Ansible Ansible can automate LVM tasks by defining playbooks. Below is an example playbook that creates a physical volume, volume group, and logical volume: ```yaml --- - name: Configure LVM hosts: all become: yes tasks: - name: Create physical volume community.general.lvol: vg: myvg lv: mylv size: 10G state: present ``` This playbook uses the `community.general.lvol` module to manage LVM volumes[^3]. ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值