Re: First steps towards importing gvirstor into -current

From: Pieter de Goeje <pieter_at_degoeje.nl>
Date: Sat, 3 Feb 2007 12:38:52 +0100
On Friday 02 February 2007 14:30, Pawel Jakub Dawidek wrote:
> The API for geom(8) command have changed at some point. Where you used
> G_TYPE_NONE, you should now use G_TYPE_BOOL.
Ok, with this little change it worked. (patch attached)

I created a 10GB virtual storage on two 2GB partitions.
Copying around the freebsd source tree on it worked great and
performance was as expected.
Also as expected it issued a warning when starting to use the second 
component. However, when I tried to overflow the filesystem, it went wrong:

GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
g_vfs_done():virstor/test[WRITE(offset=101842944, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=101974016, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=102105088, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=102236160, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=102367232, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=102498304, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=102760448, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=102891520, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=103022592, length=131072)]error = 28
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
GEOM_VIRSTOR[1]: All physical space allocated for test
GEOM_VIRSTOR[5]: Failed to allocate physical chunk for virstor/test
g_vfs_done():virstor/test[WRITE(offset=103153664, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=103284736, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=103415808, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=103546880, length=131072)]error = 28
g_vfs_done():virstor/test[WRITE(offset=103677952, length=131072)]error = 28

It spitted out these messages in a tight loop (100% sys load). I was unable to 
recover the system from this situation. Steps I did to recreate this 
situation:

# gvirstor label -s 10000 test /dev/ad0s3b /dev/ad1s1b
(total physical storage is 4GB)
# newfs -U /dev/virstor/test
# mount /dev/virstor/test /mnt
# dd if=/dev/zero of=/mnt/testfile bs=64k

Also, no warning was issued when it aproached 0% free physical space.
I would expect the system to simply abort the write operation (possibly 
needing a background fsck after adding another component to make more space).

Regards,
Pieter de Goeje

Received on Sat Feb 03 2007 - 10:39:03 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:05 UTC