Date: Tue, 26 Jun 2018 09:48:10 +0300 From: Toomas Soome <tsoome@me.com> To: KIRIYAMA Kazuhiko <kiri@kx.openedu.org> Cc: Allan Jude <allanjude@freebsd.org>, freebsd-current@freebsd.org Subject: Re: ZFS: I/O error - blocks larger than 16777216 are not supported Message-ID: <63C1AB52-1A4B-430E-9D88-6406107785BA@me.com> In-Reply-To: <201806260208.w5Q28Una093666@kx.openedu.org> References: <201806210136.w5L1a5Nv074194@kx.openedu.org> <21493592-4eb2-59c5-1b0d-e1d08217a96b@freebsd.org> <201806210600.w5L60mYn079435@kx.openedu.org> <1CDD5AFE-F115-406C-AB92-9DC58B57E1D5@me.com> <201806260208.w5Q28Una093666@kx.openedu.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 26 Jun 2018, at 05:08, KIRIYAMA Kazuhiko <kiri@kx.openedu.org> = wrote: >=20 > At Thu, 21 Jun 2018 10:48:28 +0300, > Toomas Soome wrote: >>=20 >>=20 >>=20 >>> On 21 Jun 2018, at 09:00, KIRIYAMA Kazuhiko <kiri@kx.openedu.org> = wrote: >>>=20 >>> At Wed, 20 Jun 2018 23:34:48 -0400, >>> Allan Jude wrote: >>>>=20 >>>> On 2018-06-20 21:36, KIRIYAMA Kazuhiko wrote: >>>>> Hi all, >>>>>=20 >>>>> I've been reported ZFS boot disable problem [1], and found >>>>> that this issue occers form RAID configuration [2]. So I >>>>> rebuit with RAID5 and re-installed 12.0-CURRENT >>>>> (r333982). But failed to boot with: >>>>>=20 >>>>> ZFS: i/o error - all block copies unavailable >>>>> ZFS: can't read MOS of pool zroot >>>>> gptzfsboot: failed to mount default pool zroot >>>>>=20 >>>>> FreeBSD/x86 boot >>>>> ZFS: I/O error - blocks larger than 16777216 are not supported >>>>> ZFS: can't find dataset u >>>>> Default: zroot/<0x0>: >>>>>=20 >>>>> In this case, the reason is "blocks larger than 16777216 are >>>>> not supported" and I guess this means datasets that have >>>>> recordsize greater than 8GB is NOT supported by the >>>>> FreeBSD boot loader(zpool-features(7)). Is that true ? >>>>>=20 >>>>> My zpool featues are as follows: >>>>>=20 >>>>> # kldload zfs >>>>> # zpool import=20 >>>>> pool: zroot >>>>> id: 13407092850382881815 >>>>> state: ONLINE >>>>> status: The pool was last accessed by another system. >>>>> action: The pool can be imported using its name or numeric = identifier and >>>>> the '-f' flag. >>>>> see: http://illumos.org/msg/ZFS-8000-EY >>>>> config: >>>>>=20 >>>>> zroot ONLINE >>>>> mfid0p3 ONLINE >>>>> # zpool import -fR /mnt zroot >>>>> # zpool list >>>>> NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH = ALTROOT >>>>> zroot 19.9T 129G 19.7T - 0% 0% 1.00x ONLINE = /mnt >>>>> # zpool get all zroot >>>>> NAME PROPERTY VALUE = SOURCE >>>>> zroot size 19.9T = - >>>>> zroot capacity 0% = - >>>>> zroot altroot /mnt = local >>>>> zroot health ONLINE = - >>>>> zroot guid = 13407092850382881815 default >>>>> zroot version - = default >>>>> zroot bootfs = zroot/ROOT/default local >>>>> zroot delegation on = default >>>>> zroot autoreplace off = default >>>>> zroot cachefile none = local >>>>> zroot failmode wait = default >>>>> zroot listsnapshots off = default >>>>> zroot autoexpand off = default >>>>> zroot dedupditto 0 = default >>>>> zroot dedupratio 1.00x = - >>>>> zroot free 19.7T = - >>>>> zroot allocated 129G = - >>>>> zroot readonly off = - >>>>> zroot comment - = default >>>>> zroot expandsize - = - >>>>> zroot freeing 0 = default >>>>> zroot fragmentation 0% = - >>>>> zroot leaked 0 = default >>>>> zroot feature@async_destroy enabled = local >>>>> zroot feature@empty_bpobj active = local >>>>> zroot feature@lz4_compress active = local >>>>> zroot feature@multi_vdev_crash_dump enabled = local >>>>> zroot feature@spacemap_histogram active = local >>>>> zroot feature@enabled_txg active = local >>>>> zroot feature@hole_birth active = local >>>>> zroot feature@extensible_dataset enabled = local >>>>> zroot feature@embedded_data active = local >>>>> zroot feature@bookmarks enabled = local >>>>> zroot feature@filesystem_limits enabled = local >>>>> zroot feature@large_blocks enabled = local >>>>> zroot feature@sha512 enabled = local >>>>> zroot feature@skein enabled = local >>>>> zroot unsupported@com.delphix:device_removal inactive = local >>>>> zroot unsupported@com.delphix:obsolete_counts inactive = local >>>>> zroot unsupported@com.delphix:zpool_checkpoint inactive = local >>>>> #=20 >>>>>=20 >>>>> Regards >>>>>=20 >>>>> [1] = https://lists.freebsd.org/pipermail/freebsd-current/2018-March/068886.html= >>>>> [2] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D151910 >>>>>=20 >>>>> --- >>>>> KIRIYAMA Kazuhiko >>>>> _______________________________________________ >>>>> freebsd-current@freebsd.org mailing list >>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current >>>>> To unsubscribe, send any mail to = "freebsd-current-unsubscribe@freebsd.org" >>>>>=20 >>>>=20 >>>> I am guessing it means something is corrupt, as 16MB is the maximum = size >>>> of a record in ZFS. Also, the 'large_blocks' feature is 'enabled', = not >>>> 'active', so this suggest you do not have any records larger than = 128kb >>>> on your pool. >>>=20 >>> As I mentioned above, [2] says ZFS on RAID disks have any >>> serious bugs except for mirror. Anyway I gave up to use ZFS >>> on RAID{5,6}* until Bug 151910 [2] fixed. >>>=20 >>=20 >> if you boot from usb stick (or cd), press esc at boot loader menu and = enter lsdev -v. what sector and disk sizes are reported? >=20 > OK lsdev -v > disk devices: > disk0: BIOS drive C (31588352 X 512) > disk0p1: FreeBSD boot 512KB > disk0p2: FreeBSD UFS 13GB > disk0p3: FreeBSD swap 771MB > disk1: BIOS drive D (4294967295 X 512) > disk0p1: FreeBSD boot 512KB > disk0p2: FreeBSD swap 128GB > disk0p3: FreeBSD ZFS 19TB > OK >=20 > Does this means whole disk size that I can use is > 2TB (4294967295 X 512) ?=20 Yes, or to be exact, that is the disk size reported by the INT13; and as = below you do get the same value from UEFI, the limit seems to be set by = the RAID controller itself. In this case it means that the best way to = address the issue is to create one smaller lun for boot disk (zroot = pool) and larger for data. Or of course you can have separate FreeBSD = ZFS partition for zroot, just make sure it will fit inside the first = 2TB. Of course there may be option for RAID firmware update, or configuration = settings for lun, or use JBOD mode (if supported by the card). JBOD = would be the best because in the current setup, the pool is vulnerable = against silent data corruption (checksum errors) and has no way to = recover (this is the reason why RAID setups are not preferred with zfs). rgds, toomas >=20 >=20 >>=20 >> the issue [2] is mix of ancient freebsd (v 8.1 is mentioned there), = and RAID luns with 512B sector size and 15TB!!! total size - are you = really sure your BIOS can actually address 15TB lun (with 512B sector = size)? Note that the problem with large disks can hide itself till you = have pool filled up enough till the essential files will be stored above = the limit~ meaning that you may have ~perfectly working~ setup till at = some point in time, after next update, it is suddenly not working any = more. >>=20 >=20 > I see why I could use for a while. >=20 >> Note that for boot loader we have only INT13h for BIOS version, and = it really is limited. The UEFI version is using EFI_BLOCK_IO API, which = usually can handle large sectors and disk sizes better. >=20 > I re-installed the machine with UEFI boot: >=20 > # gpart show mfid0 > =3D> 40 42965401520 mfid0 GPT (20T) > 40 409600 1 efi (200M) > 409640 2008 - free - (1.0M) > 411648 268435456 2 freebsd-swap (128G) > 268847104 42696552448 3 freebsd-zfs (20T) > 42965399552 2008 - free - (1.0M) >=20 > # uname -a > FreeBSD vm.openedu.org <http://vm.openedu.org/> 12.0-CURRENT FreeBSD = 12.0-CURRENT #0 r335317: Mon Jun 18 16:21:17 UTC 2018 = root@releng3.nyi.freebsd.org = <mailto:root@releng3.nyi.freebsd.org>:/usr/obj/usr/src/amd64.amd64/sys/GEN= ERIC amd64 > # zpool get all zroot > NAME PROPERTY VALUE = SOURCE > zroot size 19.9T - > zroot capacity 0% - > zroot altroot - = default > zroot health ONLINE - > zroot guid 11079446129259852576 = default > zroot version - = default > zroot bootfs zroot/ROOT/default = local > zroot delegation on = default > zroot autoreplace off = default > zroot cachefile - = default > zroot failmode wait = default > zroot listsnapshots off = default > zroot autoexpand off = default > zroot dedupditto 0 = default > zroot dedupratio 1.00x - > zroot free 19.9T - > zroot allocated 1.67G - > zroot readonly off - > zroot comment - = default > zroot expandsize - - > zroot freeing 0 = default > zroot fragmentation 0% - > zroot leaked 0 = default > zroot bootsize - = default > zroot checkpoint - - > zroot feature@async_destroy enabled = local > zroot feature@empty_bpobj active = local > zroot feature@lz4_compress active = local > zroot feature@multi_vdev_crash_dump enabled = local > zroot feature@spacemap_histogram active = local > zroot feature@enabled_txg active = local > zroot feature@hole_birth active = local > zroot feature@extensible_dataset enabled = local > zroot feature@embedded_data active = local > zroot feature@bookmarks enabled = local > zroot feature@filesystem_limits enabled = local > zroot feature@large_blocks enabled = local > zroot feature@sha512 enabled = local > zroot feature@skein enabled = local > zroot feature@device_removal enabled = local > zroot feature@obsolete_counts enabled = local > zroot feature@zpool_checkpoint enabled = local > #=20 >=20 > and checked 'lsdev -v' at loader prompt: >=20 > OK lsdev -v > = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/VenHw(CF31FAC5-C24E-11D2-85F3-00A0C= 93EC93B,80) > disk0: 4294967295 X 512 blocks > disk0p1: EFI 200MB > disk0p2: FreeBSD swap 128GB > disk0p2: FreeBSD ZFS 19TB > net devices: > zfs devices: > pool: zroot > bootfs: zroot/ROOT/default > config: >=20 > NAME STATE > zroot ONLINE > mfid0p3 ONLINE > OK >=20 > but disk size (4294967295 X 512) still not changed or this > means 4294967295 X 512 X 512 bytes ? >=20 >>=20 >> rgds, >> toomas >>=20 >> _______________________________________________ >> freebsd-current@freebsd.org <mailto:freebsd-current@freebsd.org> = mailing list >> https://lists.freebsd.org/mailman/listinfo/freebsd-current = <https://lists.freebsd.org/mailman/listinfo/freebsd-current> >> To unsubscribe, send any mail to = "freebsd-current-unsubscribe@freebsd.org = <mailto:freebsd-current-unsubscribe@freebsd.org>" >=20 > Regards >=20 > --- > KIRIYAMA Kazuhiko
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?63C1AB52-1A4B-430E-9D88-6406107785BA>