Cloned a replicated snapshot of a ZVol, mounted as iSCSI extent on destination FreeNAS, still set to Read Only.

SamM

Dabbler
Joined
May 29, 2017
Messages
39
I have a pair of FreeNAS servers named FreeNAS02 & FreeNAS03. They are identical hardware-wise:
  • Dual Intel(R) Xeon(R) CPU E5-2440
  • 96Gb ECC RAM
  • One pool named "Mech_Pool_1":
    • Twelve Seagate Exos 10Tb 7200 RPM SATA (I get minor issues with these on old LSI controllers, but that's another story)
      • Four sets of 3-way mirrors
    • Crucial MX500 500Gb M.2 read cache
    • Twin Intel Optane DC P4801X 100GB NVMe SLOG
  • Chelsio 4-port 10Gb NIC
    • SAN1a
    • SAN1b
    • Empty
    • Replication (direct connection to other FreeNAS server)
FreeNAS02 is running version FreeNAS-11.2-U6 while FreeNAS03 is running FreeNAS-11.3-U2.1. Once I feel that replication has corrected, and that 11.3 doesn't create any new issues (like the 10Tb disks on old LSI controllers thing...), I will update FreeNAS02 to the latest version.

FreeNAS02 replicated to FreeNAS03. This *seems* to be working correctly.
  1. I've set up Periodic Snapshot Tasks on FreeNAS02.
  2. I've set up Replication Tasks on FreeNAS02
  3. Originally, I used "Mech_Pool_1/Replication From FreeNAS02" as the "Remote ZFS Pool/Dataset".
    1. The first issue I found was when I tried to mount snapshots & clones of snapshots on FreeNAS03 as iSCSI extents. Despite my best efforts, I ran into issues until I finally figured out that the path name was too long.
    2. I have since started using "Mech_Pool_1/Repl_FN02" instead. Now I can clone snapshots on FreeNAS03, and add them as iSCSI extents.
  4. Snapshots from FreeNAS02 seem to be replicating correctly to FreeNAS03, which was always the case. But when I go to "Snapshots" on FreeNAS03, select a snapshot (example - Dataset: Mech_Pool_1/Repl_FN02/DS-Alpha/DS-Alpha.FileSvr-DS1 - Snapshot: auto-20200504.0155-2w), and click "Clone to new dataset", this creates a new item under pools (assuming a shorten the default clone name) which I can add as an iSCSI extent.
    1. One thing I've noticed is that I cannot create the clone to a lower dataset than "Mech_Pool_1/Repl_FN02/". Every time I've tried, it look like it worked, but then the dataset is missing under Pools.
    2. I eventually found info on FreeNAS'es file path/name character limits, and that names/paths more than 63/88 characters reaks weird issues on iSCSI extents. For me, I've found that getting names/paths down even to 60 characters STILL doesn't work, but that 58 character names do, so YMMV...
  5. I take this new iSCSI extent, and share it out via iSCSI like I do any other iSCSI share. I configure a Windows VM to mount this LUN, but Windows always reports it as Read Only. This is where I'm stuck.
  6. My goal is to use FreeNAS03 as a disaster recovery option for FreeNAS02. But so far, it can't be used as such because the iSCSI shares all come out as read only.
What am I missing?
-SamM
 
Last edited:

SamM

Dabbler
Joined
May 29, 2017
Messages
39
I think I figured it out. Some key findings regarding previously mentioned points:
3.2. There's something screwy with my dataset "Mech_Pool_1/Repl_FN02/". If I put the clone in there, the disk presented to Windows gets set to Read Only no matter what. If I put the clone on root ("Mech_Pool_1/"), then it works fine.
4.1. I think part of my problem here was that I was treating clone creation paths like a DOS path. FreeNAS does not create datasets like DOS (sometimes/situationally) creates subdirectories when you specify a path that does not yet exist.
4.2. When it comes to the 63 character path/name limit for iSCSI extents, assume that FreeNAS is going to add "zvol/" (5 characters) to the front of your path; so you really only get (63-5=) ~58 characters total.
 
Top