Hi, I have some strange goings-on with my VM of Solaris Express 11, and I hope someone can help.
It shares out other virtual machine files for use in ESXi 4.0 (it, too, runs in there) I had two disks inside the VM - one for rpool and one for 'vmpool'. All was fine. vmpool has some deduped data. That was also fine. I added a Samsung SSD to the ESXi host, created a 512MB VMDK and a 20GB VMDK, and added as log and cache, respectively. This also worked fine. At this point, the pool is made of c8t1d0 (data), c8t2d0 (logs), c8t3d0 (cache). I decide that to add some redundancy, I'll add a mirrored virtual disk. At this point, it happens that the VMDK for this disk (c8t4d0) actually resides on the same physical disk as c8t1d0. The idea was to perform the logical split in Solaris Express first, deal with the IO penalty of writing everything twice to the same physical disk (even though Solaris thinks they're two separate ones), then move that VMDK onto a separate physical disk shortly. This should in the short term protect against bit-flips and small errors on the single physical disk that ESXi has, until a second one is installed. I have a think about capacity, though, and decide I'd prefer the mirror to be of c8t4d0 and c8t5d0 instead. So, it seems I want to go from one single disk (c8t1d0), to a mirror of c8t4d0 and c8t5d0. In my mind, that's a 'zpool replace' onto c8t4d0 and a 'zpool attach' of c8t5d0. I kick off the replace, and all goes fine. Part way through I try to do the attach as well, but am politely told I can't. The replace itself completed without complaint, however on completion, virtual machines whose disks are inside 'vmpool' start hanging, checksum errors rapidly start counting up, and since there's no redundancy, nothing can be done to repair them. pool: vmpool state: DEGRADED status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://www.sun.com/msg/ZFS-8000-8A scan: resilvered 48.2G in 2h53m with 0 errors on Mon Jan 3 20:45:49 2011 config: NAME STATE READ WRITE CKSUM vmpool DEGRADED 0 0 25.6K c8t4d0 DEGRADED 0 0 25.6K too many errors logs c8t2d0 ONLINE 0 0 0 cache c8t3d0 ONLINE 0 0 0 errors: Permanent errors have been detected in the following files: /vmpool/nfs/duck/duck_1-flat.vmdk /vmpool/nfs/panda/template.xppro-flat.vmdk At this point, I remove disk c8t1d0, and snapshot the entire VM in case I do any further damage. This leads to my first two questions: #1 - are there any suspicions as to what's happened here? How come the resilver completed fine but now there are checksum errors on the replacement disk? It does reside on the same physical disk, after all. Could this be something to do with me attempting the attach during the replace? #2 - in my mind, c8t1d0 contains the state of the pool just prior to the cutover to c8t4d0. Is there any way I can get this back, and scrap the contents of c8t4d0? A 'zpool import -D' is fruitless, but I imagine there's some way of tricking Solaris into seeing c8t1d0 this as a single disk pool again? Now that I've snapshotted the VM and have a sort of safety net, I run a scrub, which unsurprisingly unearths checksum errors and lists all of the files which have problems: pool: vmpool state: ONLINE status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://www.sun.com/msg/ZFS-8000-8A scan: scrub repaired 0 in 0h30m with 95 errors on Mon Jan 3 21:47:25 2011 config: NAME STATE READ WRITE CKSUM vmpool ONLINE 0 0 190 c8t4d0 ONLINE 0 0 190 logs c8t2d0 ONLINE 0 0 0 cache c8t3d0 ONLINE 0 0 0 errors: Permanent errors have been detected in the following files: /vmpool/nfs/duck/duck-flat.vmdk /vmpool/nfs/duck/Windows Server 2003 Standard Edition.nvram /vmpool/nfs/duck/duck_1-flat.vmdk /vmpool/nfs/eagle/eagle-flat.vmdk /vmpool/nfs/eagle/eagle_1-flat.vmdk /vmpool/nfs/eagle/eagle_2-flat.vmdk /vmpool/nfs/eagle/eagle_3-flat.vmdk /vmpool/nfs/eagle/eagle_5-flat.vmdk /vmpool/nfs/panda/Windows XP Professional.nvram /vmpool/nfs/panda/panda-flat.vmdk /vmpool/nfs/panda/template.xppro-flat.vmdk I 'zpool clear vmpool', power on one of the VMs, and the checksum count quickly reaches 970. #3 - why would this be the case? I thought the purpose of a scrub was to traverse all blocks, read them, and unearth problems? I'm wondering why these 970 errors haven't been found in the scrub? I power off the VM, perform another scrub. This time, 94 errors: pool: vmpool state: ONLINE status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://www.sun.com/msg/ZFS-8000-8A scan: scrub repaired 0 in 0h33m with 94 errors on Mon Jan 3 22:27:30 2011 config: NAME STATE READ WRITE CKSUM vmpool ONLINE 0 0 1.13K c8t4d0 ONLINE 0 0 1.13K logs c8t2d0 ONLINE 0 0 0 cache c8t3d0 ONLINE 0 0 0 errors: Permanent errors have been detected in the following files: /vmpool/nfs/duck/duck-flat.vmdk /vmpool/nfs/duck/duck_1-flat.vmdk /vmpool/nfs/eagle/eagle-flat.vmdk /vmpool/nfs/eagle/eagle_1-flat.vmdk /vmpool/nfs/eagle/eagle_2-flat.vmdk /vmpool/nfs/eagle/eagle_3-flat.vmdk /vmpool/nfs/eagle/eagle_5-flat.vmdk /vmpool/nfs/panda/Windows XP Professional.nvram /vmpool/nfs/panda/panda-flat.vmdk /vmpool/nfs/panda/template.xppro-flat.vmdk I then set the failmode of the pool to continue, in the hope that while ZFS thinks there are errors, the files would still be accessible over NFS and ESXi wouldn't care about them. Unsurprisingly, the VMs don't boot still. Can anyone help? I see the instructions on restoring files, but I'm quite surprised that a replace seems to have induced this problem. The last time I saw checksum problems was when I had a load of SATA disks behind USB controllers and I suffered power loss part way through a replace, so I can understand there's the potential to get into a mess. On this occasion there wasn't any power loss, and the event itself reported success .. ? Thank you in advance, Chris _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss