[Debian] Re: Bug#415645: vzsplit uses hardcoded "/vz" for space checking instead of "/var/lib/vz"

Kir Kolyshkin kir at openvz.org
Fri Mar 23 10:36:51 EDT 2007


That's quite easy -- the actual checking routine in vzsplit checks for 
both free space and free inodes (and reports the same error when one of 
space/inodes is limited). Now, reiserfs reports zero total inodes 
(because it does not use inodes), and vzsplit stumbles on that.

I made a patch to fix that, I will test it and then it will hit the git.

Ola Lundqvist wrote:
> Hi Kir
>
> Do you know the answer of this issue? I have modified vzsplit.c so that
> it can check for /var/lib/vz as well as /vz, but it do not seem to help.
>
> Regards,
>
> // Ola
>
> On Thu, Mar 22, 2007 at 10:27:13AM -0700, Dusty Wilson wrote:
>   
>>>> Maybe, but more likely the problem is that you actually have 20GB free,
>>>> and maybe it needs 20.2 or something.
>>>>         
>>> It's too bad it checks for total remaining space available.  That
>>> partition already has a bunch of VPSes running on it.  It'd be nice if
>>> it could somehow (magically?) check to see how much space is already
>>> being used by existing VPSes and treat it as available space.  Or have
>>> a flag to allow it to ignore testing for available space altogether.
>>>       
>> Actually, if I have it only split for five VPSes, it still fails:
>>
>> ---
>> hera:~# vzsplit -n 5
>> WARNING: Recommended minimal sizeof /var/lib/vz partition is 20Gb!
>> WARNING: /var/lib/vz partition do not have space required for 5 VPS
>> ---
>>
>> Or even just one:
>>
>> ---
>> hera:~# vzsplit -n 1
>> WARNING: Recommended minimal sizeof /var/lib/vz partition is 20Gb!
>> WARNING: /var/lib/vz partition do not have space required for 1 VPS
>> ---
>>
>> And for fun, 100 VPSes:
>>
>> ---
>> hera:~# vzsplit -n 100
>> WARNING: Recommended minimal sizeof /var/lib/vz partition is 20Gb!
>> WARNING: /var/lib/vz partition do not have space required for 100 VPS
>> ---
>>
>> Why does it need to be 20GB for a single VPS?
>>
>> I just cleared out some space now.  Here's what my partitions look like now:
>>
>> ---
>> hera:~# df -h
>> Filesystem            Size  Used Avail Use% Mounted on
>> /dev/sdc1             4.7G  1.3G  3.5G  27% /
>> /dev/sdc3              28G  6.7G   22G  24% /var/lib/vz
>> hera:~# df
>> Filesystem           1K-blocks      Used Available Use% Mounted on
>> /dev/sdc1              4883556   1305704   3577852  27% /
>> /dev/sdc3             29309692   6930080  22379612  24% /var/lib/vz
>> ---
>>
>> Even though I've got 22GB available, it still claims I don't have 20GB
>> available same like before:
>>
>> ---
>> hera:~# vzsplit -n 20
>> WARNING: Recommended minimal sizeof /var/lib/vz partition is 20Gb!
>> WARNING: /var/lib/vz partition do not have space required for 20 VPS
>> ---
>>
>> In case it's useful, here's another strace:
>>
>> ---
>> hera:~# strace vzsplit -n 20
>> execve("/usr/sbin/vzsplit", ["vzsplit", "-n", "20"], [/* 13 vars */]) = 0
>> uname({sys="Linux", node="hera", ...})  = 0
>> brk(0)                                  = 0x804e000
>> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or 
>> directory)
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xb7fc6000
>> access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or 
>> directory)
>> open("/usr/lib/vzctl/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = -1
>> ENOENT (No such file or directory)
>> stat64("/usr/lib/vzctl/lib/tls/i686/cmov", 0xbfd99338) = -1 ENOENT (No
>> such file or directory)
>> open("/usr/lib/vzctl/lib/tls/i686/libc.so.6", O_RDONLY) = -1 ENOENT
>> (No such file or directory)
>> stat64("/usr/lib/vzctl/lib/tls/i686", 0xbfd99338) = -1 ENOENT (No such
>> file or directory)
>> open("/usr/lib/vzctl/lib/tls/cmov/libc.so.6", O_RDONLY) = -1 ENOENT
>> (No such file or directory)
>> stat64("/usr/lib/vzctl/lib/tls/cmov", 0xbfd99338) = -1 ENOENT (No such
>> file or directory)
>> open("/usr/lib/vzctl/lib/tls/libc.so.6", O_RDONLY) = -1 ENOENT (No
>> such file or directory)
>> stat64("/usr/lib/vzctl/lib/tls", 0xbfd99338) = -1 ENOENT (No such file
>> or directory)
>> open("/usr/lib/vzctl/lib/i686/cmov/libc.so.6", O_RDONLY) = -1 ENOENT
>> (No such file or directory)
>> stat64("/usr/lib/vzctl/lib/i686/cmov", 0xbfd99338) = -1 ENOENT (No
>> such file or directory)
>> open("/usr/lib/vzctl/lib/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No
>> such file or directory)
>> stat64("/usr/lib/vzctl/lib/i686", 0xbfd99338) = -1 ENOENT (No such
>> file or directory)
>> open("/usr/lib/vzctl/lib/cmov/libc.so.6", O_RDONLY) = -1 ENOENT (No
>> such file or directory)
>> stat64("/usr/lib/vzctl/lib/cmov", 0xbfd99338) = -1 ENOENT (No such
>> file or directory)
>> open("/usr/lib/vzctl/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such
>> file or directory)
>> stat64("/usr/lib/vzctl/lib", {st_mode=S_IFDIR|0755, st_size=128, ...}) = 0
>> open("/etc/ld.so.cache", O_RDONLY)      = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=13683, ...}) = 0
>> mmap2(NULL, 13683, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fc2000
>> close(3)                                = 0
>> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or 
>> directory)
>> open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1"..., 512) = 
>> 512
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=1241392, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xb7fc1000
>> mmap2(NULL, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
>> 3, 0) = 0xb7e90000
>> mmap2(0xb7fb7000, 28672, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7fb7000
>> mmap2(0xb7fbe000, 10396, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fbe000
>> close(3)                                = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xb7e8f000
>> mprotect(0xb7fb7000, 20480, PROT_READ)  = 0
>> set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e8f6c0,
>> limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
>> limit_in_pages:1, seg_not_present:0, useable:1}) = 0
>> munmap(0xb7fc2000, 13683)               = 0
>> brk(0)                                  = 0x804e000
>> brk(0x806f000)                          = 0x806f000
>> open("/proc/meminfo", O_RDONLY)         = 3
>> fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xb7fc5000
>> read(3, "MemTotal:      1033504 kB\nMemFre"..., 1024) = 676
>> read(3, "", 1024)                       = 0
>> close(3)                                = 0
>> munmap(0xb7fc5000, 4096)                = 0
>> open("/proc/sys/kernel/threads-max", O_RDONLY) = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xb7fc5000
>> read(3, "16383\n", 1024)                = 6
>> close(3)                                = 0
>> munmap(0xb7fc5000, 4096)                = 0
>> statfs("/opt/vz", 0xbfd99630)           = -1 ENOENT (No such file or 
>> directory)
>> statfs("/srv/vz", 0xbfd99630)           = -1 ENOENT (No such file or 
>> directory)
>> statfs("/vz", 0xbfd99630)               = -1 ENOENT (No such file or 
>> directory)
>> statfs("/var/lib/vz", {f_type="REISERFS_SUPER_MAGIC", f_bsize=4096,
>> f_blocks=7327423, f_bfree=5594901, f_bavail=5594901, f_files=0,
>> f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
>> write(2, "WARNING: Recommended minimal siz"..., 67WARNING: Recommended
>> minimal sizeof /var/lib/vz partition is 20Gb!
>> ) = 67
>> write(2, "WARNING: /var/lib/vz partition d"..., 100WARNING:
>> /var/lib/vz partition do not have space required for 20 VPS
>> The maximum allowed value is 0
>> ) = 100
>> write(2, "Default disc space values will b"..., 40Default disc space
>> values will be used
>>
>> ) = 40
>> fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xb7fc5000
>> write(1, "# Configuration file generated b"..., 53# Configuration file
>> generated by vzsplit for 20 VPS
>> ) = 53
>> write(1, "# on HN with total amount of phy"..., 50# on HN with total
>> amount of physical mem 1009 Mb
>> ) = 50
>> write(1, "# low memory 881 Mb, swap size 1"..., 56# low memory 881 Mb,
>> swap size 1906 Mb, Max treads 8000
>> ) = 56
>> write(1, "# Resourse commit level 0:\n", 27# Resourse commit level 0:
>> ) = 27
>> write(1, "# Free resource distribution. An"..., 62# Free resource
>> distribution. Any parameters may be increased
>> ) = 62
>> write(1, "# Primary parameters\n", 21# Primary parameters
>> )  = 21
>> write(1, "NUMPROC=\"400:400\"\n", 18NUMPROC="400:400"
>> )   = 18
>> write(1, "AVNUMPROC=\"112:112\"\n", 20AVNUMPROC="112:112"
>> ) = 20
>> write(1, "NUMTCPSOCK=\"400:400\"\n", 21NUMTCPSOCK="400:400"
>> ) = 21
>> write(1, "NUMOTHERSOCK=\"400:400\"\n", 23NUMOTHERSOCK="400:400"
>> ) = 23
>> write(1, "VMGUARPAGES=\"155025:2147483647\"\n",
>> 32VMGUARPAGES="155025:2147483647"
>> ) = 32
>> write(1, "\n# Secondary parameters\n", 24
>> # Secondary parameters
>> ) = 24
>> write(1, "KMEMSIZE=\"9241559:10165714\"\n", 28KMEMSIZE="9241559:10165714"
>> ) = 28
>> write(1, "TCPSNDBUF=\"1442119:3080519\"\n", 28TCPSNDBUF="1442119:3080519"
>> ) = 28
>> write(1, "TCPRCVBUF=\"1442119:3080519\"\n", 28TCPRCVBUF="1442119:3080519"
>> ) = 28
>> write(1, "OTHERSOCKBUF=\"721059:2359459\"\n", 
>> 30OTHERSOCKBUF="721059:2359459"
>> ) = 30
>> write(1, "DGRAMRCVBUF=\"721059:721059\"\n", 28DGRAMRCVBUF="721059:721059"
>> ) = 28
>> write(1, "OOMGUARPAGES=\"155025:2147483647\""...,
>> 33OOMGUARPAGES="155025:2147483647"
>> ) = 33
>> write(1, "PRIVVMPAGES=\"155025:170527\"\n", 28PRIVVMPAGES="155025:170527"
>> ) = 28
>> write(1, "\n# Auxiliary parameters\n", 24
>> # Auxiliary parameters
>> ) = 24
>> write(1, "LOCKEDPAGES=\"451:451\"\n", 22LOCKEDPAGES="451:451"
>> ) = 22
>> write(1, "SHMPAGES=\"15502:15502\"\n", 23SHMPAGES="15502:15502"
>> ) = 23
>> write(1, "PHYSPAGES=\"0:2147483647\"\n", 25PHYSPAGES="0:2147483647"
>> ) = 25
>> write(1, "NUMFILE=\"3584:3584\"\n", 20NUMFILE="3584:3584"
>> ) = 20
>> write(1, "NUMFLOCK=\"358:393\"\n", 19NUMFLOCK="358:393"
>> )  = 19
>> write(1, "NUMPTY=\"40:40\"\n", 15NUMPTY="40:40"
>> )      = 15
>> write(1, "NUMSIGINFO=\"1024:1024\"\n", 23NUMSIGINFO="1024:1024"
>> ) = 23
>> write(1, "DCACHESIZE=\"2004256:2064384\"\n", 29DCACHESIZE="2004256:2064384"
>> ) = 29
>> write(1, "NUMIPTENT=\"100:100\"\n", 20NUMIPTENT="100:100"
>> ) = 20
>> write(1, "DISKSPACE=\"204799:225280\"\n", 26DISKSPACE="204799:225280"
>> ) = 26
>> write(1, "DISKINODES=\"80000:88000\"\n", 25DISKINODES="80000:88000"
>> ) = 25
>> open("/proc/cpuinfo", O_RDONLY)         = 3
>> fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xb7fc4000
>> read(3, "processor\t: 0\nvendor_id\t: Authen"..., 1024) = 416
>> read(3, "", 1024)                       = 0
>> write(1, "CPUUNITS=\"4954\"\n", 16CPUUNITS="4954"
>> )     = 16
>> munmap(0xb7fc5000, 4096)                = 0
>> exit_group(0)                           = ?
>> Process 17323 detached
>> ---
>>
>> Thanks!
>> Dusty
>>
>>
>>     
>
>   



More information about the Debian mailing list