Jakub,
I'm using Nevada build 65 on x86_64. It is my first attempt with AVS
(btw:
it's awesome!!), so probabbly I'm doing something wrong.
Both nodes have identical configuration and hardware(VMware
powered ;)). AVS
is downloaded from opensolaris.org AVS project site.
I've got working Remote Mirror between two nodes, but the problem
which keeps
me thinking is that avs2 node simply panics when I'm trying to
import pool1
(zpool import pool1) when sndradm -P states that the volume is in
"replicating" state. With replicated UFS volume mount simply
returns "I/O
error". I know I should switch state to logging from replicating
"using
sndradm -l" before importing ZFS pool, but is this panic a correct
behaviour?
Yes, placing the replica in logging mode is a requirement.
For the same reasons that two Solaris nodes can not access the same
"imported" ZFS storage pool at the same time, a local and remote SNDR
node should not access the same "imported" ZFS storage pool.
One way to achieve this is by placing SNDR in logging mode, another
is "zpool export" the SNDR primary, before "zpool import" the SNDR
secondary. If you choose either of these methods, make sure to "zpool
export" the SNDR secondary before taking the SNDR set out of logging
mode, or "zpool importing" the SNDR primary node.
Still another way is to use II portion of Availability Suite, and
take an II Point-in-time copy of the replicating ZFS storage pool,
and then zpool import the II shadow volume(s).
Hope this helps.
Jim Dunham
Solaris, Storage Software Group
Sun Microsystems, Inc.
1617 Southwood Drive
Nashua, NH 03063
http://blogs.sun.com/avs
avs2# sndradm -v
Remote Mirror version 11.11
avs2# dscfgadm -i
SERVICE STATE ENABLED
nws_scm online true
nws_sv online true
nws_ii online true
nws_rdc online true
nws_rdcsyncd online true
Availability Suite Configuration:
Local configuration database: valid
avs2# pkginfo | grep -i Availa
system SUNWiir Sun StorageTek
Availability Suite
Point-In-Time Copy (root)
system SUNWiiu Sun StorageTek
Availability Suite
Point-In-Time Copy (usr)
system SUNWrdcr Sun StorageTek
Availability Suite
Remote Mirror (root)
system SUNWrdcu Sun StorageTek
Availability Suite
Remote Mirror (usr)
system SUNWscmr Sun StorageTek
Availability Suite
Cache Management (root)
system SUNWscmu Sun StorageTek
Availability Suite
Cache Management (usr)
system SUNWspsvr Sun StorageTek
Availability Suite
Volume Driver (root)
system SUNWspsvu Sun StorageTek
Availability Suite
Volume Driver (usr)
avs2# sndradm -P
/dev/rdsk/c0d1s0 <- avs1-ipsan:/dev/rdsk/c0d1s0
autosync: off, max q writes: 4096, max q fbas: 16384, async
threads: 2, mode:
sync, state: logging
Hope it helps:
avs2# mdb -k unix.0 vmcore.0
Loading modules: [ unix genunix specfs dtrace cpu.AuthenticAMD.15 uppc
pcplusmp scsi_vhci ufs ip hook neti sctp arp usba fctl lofs zfs
random nsctl
sdbc sv ii rdc crypto ptm md fcip fcp logindmux ]
$C
ffffff00014b09e0 vpanic()
ffffff00014b0a40 zio_done+0x17c(fffffffec9e61058)
ffffff00014b0a60 zio_next_stage+0xb3(fffffffec9e61058)
ffffff00014b0ab0 zio_wait_for_children+0x5d(fffffffec9e61058, 11,
fffffffec9e612b0)
ffffff00014b0ad0 zio_wait_children_done+0x20(fffffffec9e61058)
ffffff00014b0af0 zio_next_stage+0xb3(fffffffec9e61058)
ffffff00014b0b40 zio_vdev_io_assess+0x129(fffffffec9e61058)
ffffff00014b0b60 zio_next_stage+0xb3(fffffffec9e61058)
ffffff00014b0bb0 vdev_mirror_io_done+0x2af(fffffffec9e61058)
ffffff00014b0bd0 zio_vdev_io_done+0x26(fffffffec9e61058)
ffffff00014b0c60 taskq_thread+0x1a7(fffffffec0dbd0e8)
ffffff00014b0c70 thread_start+8()
::showrev
Hostname: avs1
Release: 5.11
Kernel architecture: i86pc
Application architecture: amd64
Kernel version: SunOS 5.11 i86pc snv_65
Platform: i86pc
::status
debugging crash dump vmcore.0 (64-bit) from avs2
operating system: 5.11 snv_65 (i86pc)
panic message:
ZFS: I/O failure (write on <unknown> off 0: zio fffffffec9e61058
[L0 DMU
dnode] 4000L/400P DVA[0]=<0:ac00:400> DVA[1]=<0:110
ac00:400> fletcher4 lzjb LE contiguous birth=600 fill=3
cksum=6159ff0a60:32
dump content: kernel pages only
::panicinfo
cpu 0
thread ffffff00014b0c80
message
ZFS: I/O failure (write on <unknown> off 0: zio fffffffec9e61058
[L0 DMU
dnode] 4000L/400P DVA[0]=<0:ac00:400> DVA[1]=<0:110
ac00:400> fletcher4 lzjb LE contiguous birth=600 fill=3
cksum=6159ff0a60:32c32426f64c:f94117f9d6b74:39c59e95405282c): error
5
rdi fffffffff7ccce80
rsi ffffff00014b09b8
rdx fffffffff7cccf18
rcx fffffffff7ccbe20
r8 ffffff00014b09f0
r9 fffffffec9e61058
rax 0
rbx fffffffec9e0c040
rbp ffffff00014b09e0
r10 ffffff00014b0900
r10 ffffff00014b0900
r11 ffffff00014b07bd
r12 fffffffff7ccce60
r13 fffffffec9e61058
r14 fffffffec05c2000
r15 0
fsbase 0
gsbase fffffffffbc26b30
ds 4b
es 4b
fs 0
gs 1c3
trapno 0
err 0
rip fffffffffb83afa0
cs 30
rflags 246
rsp ffffff00014b08f8
ss 38
gdt_hi 0
gdt_lo e00001ef
idt_hi 0
idt_lo 73200fff
ldt 0
task 70
cr0 8005003b
cr2 81b2e00
cr3 8400000
cr4 6b8
I think that the zio_done() function from uts/common/fs/zfs/zio.c
got this
structure as a parameter:
fffffffec9e61058::print zio_t
{
io_parent = 0xfffffffec9e0c040
io_root = 0xfffffffec9e1ec88
io_spa = 0xfffffffec05c2000
io_bookmark = {
zb_objset = 0x15
zb_object = 0
zb_level = 0
zb_blkid = 0
}
io_checksum = 7 (ZIO_CHECKSUM_FLETCHER_4)
io_compress = 3 (ZIO_COMPRESS_LZJB)
io_ndvas = 0x2
io_txg = 0x258
io_bp = 0xfffffffece9e0000
io_bp_copy = {
blk_dva = [
{
dva_word = [ 0x2, 0x56 ]
}
{
dva_word = [ 0x2, 0x8856 ]
}
{
dva_word = [ 0, 0 ]
}
]
blk_prop = 0x800a07030001001f
blk_pad = [ 0, 0, 0 ]
blk_birth = 0x258
blk_fill = 0x3
blk_cksum = {
zc_word = [ 0x6159ff0a60, 0x32c32426f64c, 0xf94117f9d6b74,
0x39c59e95405282c ]
}
}
io_child = 0
io_sibling_prev = 0
io_sibling_next = 0
io_transform_stack = 0xfffffffecf41fa40
io_logical = 0xfffffffec9e61058
io_ready = arc_write_ready
io_done = arc_write_done
io_private = 0xfffffffecf2a7ae0
io_bp_orig = {
blk_dva = [
{
dva_word = [ 0x2, 0x14c ]
}
{
dva_word = [ 0x2, 0x894c ]
}
{
dva_word = [ 0, 0 ]
}
]
blk_prop = 0x800a07030001001f
blk_pad = [ 0, 0, 0 ]
blk_birth = 0x5f
blk_fill = 0x3
blk_cksum = {
zc_word = [ 0x646111d0ea, 0x33d61f50bdd5, 0xfdca68f08fe7f,
0x3ac43bc46333d61 ]
}
}
io_data = 0xfffffffecf319800
io_size = 0x400
io_vd = 0
io_vsd = 0
io_offset = 0
io_deadline = 0
io_timestamp = 0x3bb5b
io_offset_node = {
avl_child = [ 0, 0 ]
avl_pcb = 0
}
io_deadline_node = {
avl_child = [ 0, 0 ]
avl_pcb = 0
}
io_vdev_tree = 0
io_delegate_list = 0
io_delegate_next = 0
io_flags = 0x10
io_type = 2 (ZIO_TYPE_WRITE)
io_stage = 0t21 (ZIO_STAGE_DONE)
io_stalled = 0
io_priority = 0x4
io_dk_callback = {
dkc_callback = 0
dkc_cookie = 0
}
io_cmd = 0
io_retries = 0x1
io_error = 0x5
io_numerrors = 0x2
io_pipeline = 0x23e20b
io_async_stages = 0x14800c
io_children_notready = 0
io_children_notdone = 0
io_waiter = 0
io_lock = {
_opaque = [ 0 ]
}
io_cv = {
_opaque = 0
}
io_ena = 0x26e1f676c0c00001
}
IMHO it is:
892 /*
893 * For I/O requests that cannot fail, panic
appropriately.
894 */
895 if (!(zio->io_flags & ZIO_FLAG_CANFAIL)) {
Am I doing something wrong or just ZFS somehow should block
importing volumes
which are in "replicating" state ??
--
Jakub Wartak
-vnull
http://vnull.pcnet.com.pl
_______________________________________________
storage-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/storage-discuss
_______________________________________________
storage-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/storage-discuss