[lvm-devel] VG archive files won't be removed after a long run.
Chiyohiko Morita
morita at valinux.co.jp
Thu Feb 13 02:58:06 UTC 2014
>
> (I'm not on this list; please Cc me)
>
> When the VG archive file is created more than 100,000 times,
> if there don't exist files with indices from "00000" to "10000",
> the file name always because vg_name_100000-random_numbers.vg.
> The index number part of the names is always "100000".
>
> I think that there is a problem with the _insert_archive_file() function.
> The last line of the _insert_archive_file() function is to add a table
> at the head of the archives list. (See line indicated by (*))
> I think in this case, and you should add the table at the tail of the list.
>
> The related source code is shown below.
>
> ==============================================================================
> lvm2-2_02_104/lib/format_text/archive.c
I'm sorry.
The version was wrong. The right version is LVM2.2.02.87.
(The _insert_archive_file() source code of lvm2-2.02.87-6.el6.x86_64
is the same as lvm2-2_02_104.)
> ------------------------------------------------------------------------------
> static void _insert_archive_file(struct dm_list *head, struct archive_file *b)
> {
> struct archive_file *bf = NULL;
>
> if (dm_list_empty(head)) {
> dm_list_add(head, &b->list);
> return;
> }
>
> /* index reduces through list */
> dm_list_iterate_items(bf, head) {
> if (b->index > bf->index) {
> dm_list_add(&bf->list, &b->list);
> return;
> }
> }
>
> dm_list_add_h(&bf->list, &b->list); (*)
> }
>
I use LVM of version lvm2-2.02.87-6.el6.x86_64.
Please refer to the following for package information and 'vgs, lvs -a, pvs' command output.
# rpm -qa | grep kernel-2
kernel-2.6.32-220.23.1.el6.x86_64
kernel-2.6.32-220.el6.x86_64
(RHEL/CentOS 6.2)
# rpm -qa | grep lvm2
lvm2-libs-2.02.87-6.el6.x86_64
lvm2-2.02.87-6.el6.x86_64
lvm2-debuginfo-2.02.87-6.el6.x86_64
# vgs
VG #PV #LV #SN Attr VSize VFree
test-vg 2 5 2 wz--n- 7.99g 4.98g
# lvs -a
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
data01 test-vg owi-a- 1.00g
data01_snap test-vg swi-a- 4.00m data01 0.00
data02 test-vg owi-a- 1.00g
data02_snap test-vg swi-a- 4.00m data02 0.00
data03 test-vg -wi-a- 1.00g
# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 test-vg lvm2 a-- 4.00g 1012.00m
/dev/vdb2 test-vg lvm2 a-- 4.00g 4.00g
# diff -upN /etc/lvm/lvm.conf.org /etc/lvm/lvm.conf
--- lvm.conf.org 2011-12-08 07:48:23.000000000 +0900
+++ /etc/lvm/lvm.conf 2014-02-12 07:35:34.000000000 +0900
@@ -63,7 +63,7 @@ devices {
# By default we accept every block device:
- filter = [ "a/.*/" ]
+ filter = [ "a|/dev/vdb*|", "r|.*|" ]
# Exclude the cdrom drive
# filter = [ "r|/dev/cdrom|" ]
- - - - - - - - - - - - - - - - - - - - - - - - - -
# cat /etc/lvm/lvm.conf
:
# What is the minimum time you wish to keep an archive file for ?
retain_days = 30
:
- - - - - - - - - - - - - - - - - - - - - - - - - -
I'm sorry.
Since there was a Japanese notation, I corrected.
> Additional info:
>
> <example: File index number 00000-10000 does not exist.>
[/etc/lvm/archive]# ls -al
total 406320
drwxr-xr-x. 2 root root 6402048 Feb 10 07:54 .
drwxr-xr-x. 7 root root 4096 Feb 10 07:53 ..
-rw-------. 1 root root 2378 Jan 31 18:24 test-vg_100000-1204670439.vg (**)
-rw-------. 1 root root 1773 Jan 31 18:10 test-vg_100000-1241353072.vg (**)
-rw-------. 1 root root 2378 Jan 31 17:59 test-vg_100000-1369206884.vg (**)
-rw-------. 1 root root 2378 Jan 31 18:21 test-vg_100000-1740312384.vg (**)
-rw-------. 1 root root 1773 Jan 31 18:31 test-vg_100000-1798506701.vg (**)
-rw-------. 1 root root 2378 Jan 31 17:50 test-vg_100000-2045350629.vg (**)
-rw-------. 1 root root 2086 Jan 29 15:09 test-vg_10001-444418726.vg
-rw-------. 1 root root 2705 Jan 29 15:09 test-vg_10002-991152144.vg
-rw-------. 1 root root 3322 Jan 29 15:09 test-vg_10003-1382812875.vg
-rw-------. 1 root root 3925 Jan 29 15:09 test-vg_10004-1229258138.vg
:
-rw-------. 1 root root 3322 Jan 31 02:14 test-vg_99997-1786673524.vg
-rw-------. 1 root root 3925 Jan 31 02:14 test-vg_99998-1284671590.vg
-rw-------. 1 root root 3306 Jan 31 02:14 test-vg_99999-1949909947.vg
(**):Index numbers are the same.
Even if it becomes on February 30, files created on January 29 won't deleted.
Because, there exist test-vg_100000-<random_numbers>.vg files in /etc/lvm/archive.
> <example: File index number 00000-10000 exist.>
[/etc/lvm/archive]# ls -al
total 366668
drwxr-xr-x. 2 root root 6402048 Feb 10 11:55 .
drwxr-xr-x. 7 root root 4096 Feb 10 11:43 ..
-rw-------. 1 root root 1109 Jan 29 11:59 test-vg_00000-2082297108.vg
-rw-------. 1 root root 1442 Jan 29 12:00 test-vg_00001-190015709.vg
-rw-------. 1 root root 1771 Jan 29 12:01 test-vg_00002-1842787566.vg
:
-rw-------. 1 root root 3925 Jan 29 15:09 test-vg_09998-916990031.vg
-rw-------. 1 root root 3306 Jan 29 15:09 test-vg_09999-800050091.vg
-rw-------. 1 root root 2685 Jan 29 15:09 test-vg_10000-746926820.vg
-rw-------. 1 root root 2685 Jan 31 02:14 test-vg_100000-528314802.vg
-rw-------. 1 root root 2086 Jan 31 02:14 test-vg_100001-1539419450.vg
:
-rw-------. 1 root root 3322 Jan 31 02:15 test-vg_100009-168721966.vg
-rw-------. 1 root root 2086 Jan 29 15:09 test-vg_10001-444418726.vg
-rw-------. 1 root root 3925 Jan 31 02:15 test-vg_100010-1968226420.vg
-rw-------. 1 root root 2086 Jan 31 02:14 test-vg_100001-1539419450.vg
:
-rw-------. 1 root root 2086 Jan 31 02:15 test-vg_100019-589867197.vg
-rw-------. 1 root root 2705 Jan 29 15:09 test-vg_10002-991152144.vg
-rw-------. 1 root root 2705 Jan 31 02:15 test-vg_100020-300714866.vg
-rw-------. 1 root root 3322 Jan 31 02:15 test-vg_100021-333183948.vg
:
-rw-------. 1 root root 3306 Jan 31 02:15 test-vg_100029-249595924.vg
-rw-------. 1 root root 3322 Jan 29 15:09 test-vg_10003-1382812875.vg
-rw-------. 1 root root 2685 Jan 31 02:15 test-vg_100030-1220134385.vg
-rw-------. 1 root root 2086 Jan 31 02:15 test-vg_100031-981943972.vg
:
-rw-------. 1 root root 3322 Jan 31 02:16 test-vg_100039-1249509839.vg
-rw-------. 1 root root 3925 Jan 29 15:09 test-vg_10004-1229258138.vg
-rw-------. 1 root root 3925 Jan 31 02:16 test-vg_100040-1288607163.vg
:
-rw-------. 1 root root 2086 Jan 31 02:17 test-vg_100097-450415415.vg
-rw-------. 1 root root 2705 Jan 31 02:17 test-vg_100098-1044414870.vg
-rw-------. 1 root root 3322 Jan 31 02:17 test-vg_100099-1167588496.vg
-rw-------. 1 root root 3925 Jan 29 15:09 test-vg_10010-128770730.vg
-rw-------. 1 root root 3306 Jan 29 15:09 test-vg_10011-1575005460.vg
-rw-------. 1 root root 2685 Jan 29 15:09 test-vg_10012-1276134968.vg
-rw-------. 1 root root 2086 Jan 29 15:09 test-vg_10013-2102715722.vg
-rw-------. 1 root root 2705 Jan 29 15:09 test-vg_10014-2041113299.vg
-rw-------. 1 root root 3322 Jan 29 15:09 test-vg_10015-1772090647.vg
:
-rw-------. 1 root root 3322 Jan 31 02:14 test-vg_99997-1786673524.vg
-rw-------. 1 root root 3925 Jan 31 02:14 test-vg_99998-1284671590.vg
-rw-------. 1 root root 3306 Jan 31 02:14 test-vg_99999-1949909947.vg
> - - - - - - - - - - - - - - - - - - - -
>
Thanks,
--
Chiyohiko Morita <morita valinux co jp>
More information about the lvm-devel
mailing list