LVM下的硬连接问题

  之前在使用pdumpfs备份时,发现并没有像之前使用时的那样,使用 hardlink 的方式存储没有变化的文件,之后又发现在 LVM 管理的卷中建立文件的hardlink时,有时会失败。
  那么,也就是说,hardlink真的像原始文档中说的那样,只能在同一物理设备上使用,即使是LVM(device-mapper)这样逻辑上的设备也不行。
  于是,在LVM使用硬连接时,不一定总是成功的。

lvm性能相关

发现当使用“快照”备份“lv”之后,在往服务器里写入文件时(大文件,内网快速写入),发现有kcopyd进程时常阻塞,系统负载达到2/3/4(在2、3、4之间徘徊,具体硬件应该会有所不同,仅供参考)之高,搜索kcopyd相关的信息了解到跟lvm中快照有关。

将系统中的卷快照删除之后,就不再有kcopyd阻塞的情况,并且系统负载也降了下来。

Dell PowerEdge 860 安装Debian GNU/Linux 4.0 (i386) 时使用LVM遇到Waiting for root filesystem

  Dell PowerEdge 860 安装Debian GNU/Linux 4.0 (i386) 时,我使用了LVM,结果在重启的过程中遇到了找不到卷组,Waiting for root filesystem的提示。不排除是我这台设备的问题。由于时间关系,我没有在其它同型号设备上做LVM安装。

我现在就在机房安装PE860,发现重启的时候偶尔会遇到LVM不工作,提示找不到vg0(卷组)。实际上是遇到了两次,第一次还以为是安装问题,第二次又出现,就有些担心了,于是不敢在这台设备上使用LVM。不得不再重装一次。

补充,貌似不是LVM的问题,在安装第二台的时候,没有使用LVM,但在重启之后,也出现了一次Waiting for root filesystem……

找到一篇全英的文章:

大致的解决办法是,假如真的完全进入不了系统(我还是比较幸运的,只是偶尔进不去系统),可以用急救盘启动,然后

chroot /mnt/debian /bin/bash

apt-get upgade

apt-get install udev

lvcreate -s

Create a snapshot logical volume (or snapshot) for an  existing, so  called  original logical volume (or origin).  Snapshots provide a ‘frozen image’ of the contents of the  origin  while  the origin  can still be updated. They enable consistent backups and online recovery of removed/overwritten data/files. The  snapshot does  not  need  the same amount of storage the origin has. In a typical scenario, 15-20% might be enough. In case  the  snapshot runs  out  of  storage,  use lvextend(8) to grow it. Shrinking a snapshot is supported by lvreduce(8) as well.  Run  lvdisplay(8) on  the snapshot in order to check how much data is allocated to it.

LVM1使用备忘

删除vg时,提供vg被active不能删除。
使用lvmchange -R (reset lvm)
然后就可以删除了

扩展lv的大小(可以在线操作,即在lv被mount的状态下操作)
lvextend -l +10G /dev/vg0/dbslave

接着需要扩展文件系统的大小了,ext2/ext3文件系统使用e2fsprogs软件包里的工具resize2fs
需要在umont的状态下操作,操作之前需要先fsck文件系统
e2fsck /dev/vg0/dbslave
resize2fs /dev/vg0/dbslave

在线扩展lv的文件系统,需要使用LVM带的e2fsadm工具,不过这个工具需要使用/sbin/ext2online这个工具。

LVM2使用备忘

初始化配置文件
vgscan

建立物理卷
pvcreate /dev/sda2
pvcreate /dev/sda3

建立卷组
vgcreate  vg0 /dev/sda2

扩展逻辑卷
vgextend vg0 /dev/sda3

建立逻辑卷
lvcreate -L 60G -n lv_name  vg0

删除逻辑卷
lvremove /dev/vg0/lv_name

扩充和减小逻辑卷的容量
#e2fsadm -L +100M /dev/vg0/vg1  
-L 表示增减空间 +表示加 -表示建
#e2fsadm -L -100M /dev/vg0/vg1
这里要注意文件系统必需是ext2或ext3,而且需要卸载文件系统来执行,减小的时候需要知道剪掉空间的大小,不然会造成丢失