HA iSCSI target on ZFS: model

Dmitry Morozovsky marck at rinet.ru
Sat Mar 16 19:48:38 UTC 2013


Dear colleagues,

I'm currently plan to architect and deploy test HA iSCSI target using two 
FreeBSD hosts, and want to listen to your comments.

What I already did:

- two hosts, booted from internal USB stick, with 4 HDDs and one SSD each
- LACP-based laggs while links are connected to different half of 
a clustered switch, with the mtu of 9000
- 2 carps (thanks to araujo@ help, -current, i.e. interface property, not 
clone) holding shared addresses

- disk layout such as

root at cthulhu4:/usr/local/etc/istgt# gpart show -l
=>        34  1953525101  ada0  GPT  (931G)
          34        2014        - free -  (1M)
        2048  1952448512     1  ct4-0  (931G)
  1952450560     1074575        - free -  (524M)

=>        34  1953522988  ada1  GPT  (931G)
          34        2014        - free -  (1M)
        2048  1952448512     1  ct4-1  (931G)
  1952450560     1072462        - free -  (523M)

=>        34  1953525101  ada2  GPT  (931G)
          34        2014        - free -  (1M)
        2048  1952448512     1  ct4-2  (931G)
  1952450560     1074575        - free -  (524M)

=>        34  1953525101  ada3  GPT  (931G)
          34        2014        - free -  (1M)
        2048  1952448512     1  ct4-3  (931G)
  1952450560     1074575        - free -  (524M)

=>       34  234441581  ada4  GPT  (111G)
         34       2014        - free -  (1M)
       2048    2097152     1  ct3-zil4  (1.0G)
    2099200    2097152     2  ct4-zil4  (1.0G)
    4196352  230244352     3  ct4-cache  (109G)
  234440704        911        - free -  (455k)

=>      0  4005886  da0  BSD  (1.9G)
        0       16       - free -  (8.0k)
       16  4005870    1  (null)  (1.9G)

(da0 is USB, ada0-ada3 HDDs, ada4 SSD)

- 2 hast sets such as

root at cthulhu4:/usr/local/etc/istgt# hastctl status
Name    Status   Role           Components
d0      complete secondary      /dev/ada0p1     cthulhu3
d1      complete secondary      /dev/ada1p1     cthulhu3
d2      complete primary        /dev/ada2p1     cthulhu3
d3      complete primary        /dev/ada3p1     cthulhu3
zil3    complete secondary      /dev/ada4p1     cthulhu3
zil4    complete primary        /dev/ada4p2     cthulhu3

- 2 ZFS setups like
root at cthulhu4:/usr/local/etc/istgt# zpool status
  pool: ct4
 state: ONLINE
  scan: scrub repaired 0 in 0h0m with 0 errors on Thu Mar 14 17:58:48 2013
config:

        NAME             STATE     READ WRITE CKSUM
        ct4              ONLINE       0     0     0
          hast/d2        ONLINE       0     0     0
          hast/d3        ONLINE       0     0     0
        logs
          hast/zil4      ONLINE       0     0     0
        cache
          gpt/ct4-cache  ONLINE       0     0     0


Now, it's time to create exportable entities. I think of creating thin 
(non-preallocated) ZFS volumes in the pools, and sharing them via istgt.

What zfs properties would be appropriate for this? 
I'm thinking at least about volblocksize=4k (main usage will be vSphere), but 
not sure about it.  And, more importantly, what about sync property?

Did I miss something obvious?

(and yes, supporting scripts for checking paired resource to be alive are all 
to be written...)

Thanks in advance!

-- 
Sincerely,
D.Marck                                     [DM5020, MCK-RIPE, DM3-RIPN]
[ FreeBSD committer:                                 marck at FreeBSD.org ]
------------------------------------------------------------------------
*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck at rinet.ru ***
------------------------------------------------------------------------


More information about the freebsd-fs mailing list