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

Kir Kolyshkin kir at openvz.org
Thu Apr 12 09:43:19 EDT 2007


Ola, all,

Both problems in vzsplit are now (hopefully) fixed with this commit:
http://git.openvz.org/?p=vzctl;a=commit;h=78a0518af5ce7ce8c13a3aa5f3d4247164d0bfab

Fixed vzsplit will be available in vzctl-3.0.17

PS to the original reporter of Debian bug #415645 -- vzsplit was not 
failing, it just printed a (false) warning.

Ola Lundqvist wrote:
> Hi Kir
>
> On Fri, Mar 23, 2007 at 05:36:51PM +0300, Kir Kolyshkin wrote:
>   
>> 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.
>>     
>
> Thanks a lot. Can you make a patch so that it uses the configuration variable
> for /vz location as well?
>
> Regards,
>
> // Ola
>
>   
>> 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