From owner-freebsd-geom@FreeBSD.ORG Sat Feb 3 11:39:03 2007 Return-Path: X-Original-To: freebsd-geom@freebsd.org Delivered-To: freebsd-geom@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2240216A403; Sat, 3 Feb 2007 11:39:03 +0000 (UTC) (envelope-from pieter@degoeje.nl) Received: from smtp.utwente.nl (smtp1.utsp.utwente.nl [130.89.2.8]) by mx1.freebsd.org (Postfix) with ESMTP id 9AB4913C4A8; Sat, 3 Feb 2007 11:39:02 +0000 (UTC) (envelope-from pieter@degoeje.nl) Received: from nox.student.utwente.nl (nox.student.utwente.nl [130.89.165.91]) by smtp.utwente.nl (8.12.10/SuSE Linux 0.7) with ESMTP id l13BcrLr019859; Sat, 3 Feb 2007 12:38:53 +0100 From: Pieter de Goeje To: Pawel Jakub Dawidek Date: Sat, 3 Feb 2007 12:38:52 +0100 User-Agent: KMail/1.9.5 References: <45C336D7.2060109@fer.hr> <20070202133055.GB21290@garage.freebsd.pl> In-Reply-To: <20070202133055.GB21290@garage.freebsd.pl> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_MRHxFtMRijoJiS8" Message-Id: <200702031238.52771.pieter@degoeje.nl> X-UTwente-MailScanner-Information: Scanned by MailScanner. Contact helpdesk@ITBE.utwente.nl for more information. X-UTwente-MailScanner: Found to be clean X-UTwente-MailScanner-From: pieter@degoeje.nl X-Spam-Status: No X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-current@freebsd.org, Ivan Voras , freebsd-geom@freebsd.org Subject: Re: First steps towards importing gvirstor into -current X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Feb 2007 11:39:03 -0000 --Boundary-00=_MRHxFtMRijoJiS8 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 --Boundary-00=_MRHxFtMRijoJiS8--