[sheepdog] [PATCH] ec: make data strip as 512B to make VM and mkfs happy

Liu Yuan namei.unix at gmail.com
Mon Jun 2 05:59:20 CEST 2014


On Sat, May 31, 2014 at 11:48:09AM +0800, Liu Yuan wrote:
> 1K is not suitable for some softwares like mkfs because it is operating on
> sector size.
> 
> With sbd inserted,
> 
> # sbd0 mapped to an erasure coded vdi
> $ mkfs.xfs -f /dev/sbd0 && xfs_check /dev/sbd0
> 
> will report error. Setting data strip as 512B solve the problem. This also
> fixes the possible size problem in VM.
> 
> Signed-off-by: Liu Yuan <namei.unix at gmail.com>
> ---
>  include/fec.h | 12 ++----------
>  1 file changed, 2 insertions(+), 10 deletions(-)
> 
> diff --git a/include/fec.h b/include/fec.h
> index 0297f33..b3c6e55 100644
> --- a/include/fec.h
> +++ b/include/fec.h
> @@ -107,16 +107,8 @@ void fec_decode(const struct fec *code,
>  		uint8_t *const *const outpkts,
>  		const int *const index, size_t sz);
>  
> -/*
> - * data stripe <= 1K is the safe value to run VM after some experimentations.
> - *
> - * Though most OS's file system will operate on 4K block, some softwares like
> - * grub will operate on 512 bytes and Linux kernel itself will sometimes
> - * operate on 1K blocks. I have tried 4K alignement and centos6 installation
> - * failed (grub got screwed) and 1K is probably the biggest value if we want
> - * VM to run on erasure coded volume.
> - */
> -#define SD_EC_DATA_STRIPE_SIZE (1024) /* 1K */
> +/* Set data stripe as sector size to make VM happy */
> +#define SD_EC_DATA_STRIPE_SIZE (512) /* 512 Byte */
>  #define SD_EC_NR_STRIPE_PER_OBJECT (SD_DATA_OBJ_SIZE / SD_EC_DATA_STRIPE_SIZE)
>  #define SD_EC_MAX_STRIP (16)
>  
> -- 
> 1.8.1.2
> 

Applied

Yuan



More information about the sheepdog mailing list