Hi,
when an attached SLOG dies, the pool, it was attached to, will be stoped. Actually, this is a disaster, that's why you should always mirror SLOG, right? Even, I read that death of a SLOG is no problem, because ZIL will then be distributed to all devices of the pool (again). But the last time I removed SLOG from pool, that was on load, the pool died immediately ?
Imagine you have only one slot free for a NVMe SLOG, but you have a HAST setup: Both nodes, A and B, have spin disks and each just one NVMe ssd (with powerloss protection). A is active master, so pool is attached to it and it is using local NVMe for ZIL (SLOG).
Now, on dead of the SLOG your failover script on A switches A to backup and on node B it turns B from backup to master: on B, pool is being imported as well as the local NVMe is being attached to the pool.
But how to sense on dead of the SLOG? By devd?
And another question: If the pool on A dies, will the synced pool on B allow to add the local NVMe to pool to act as SLOG?
(A) So this might look like
* is attached to hatank (hada0 = {A,B}_da0, hada1 = {A,B}_da1 ) pool
Or do you think, it is better to configure each NVMe to be mirrored by using hast, so both NVMes could die (TBW exhausted) almost at same time. BTW: TBW death could also occure on locally mirrored SLOG, right?
(B) So this might look like
What might be best solution?
(A) or (B). I would guess (B), but I am not sure.
BTW: L2ARC does not need to be redundant, but would it be a good idea to mirror it using HAST since lost read cache might have an impact on pool performance?
when an attached SLOG dies, the pool, it was attached to, will be stoped. Actually, this is a disaster, that's why you should always mirror SLOG, right? Even, I read that death of a SLOG is no problem, because ZIL will then be distributed to all devices of the pool (again). But the last time I removed SLOG from pool, that was on load, the pool died immediately ?
Imagine you have only one slot free for a NVMe SLOG, but you have a HAST setup: Both nodes, A and B, have spin disks and each just one NVMe ssd (with powerloss protection). A is active master, so pool is attached to it and it is using local NVMe for ZIL (SLOG).
Now, on dead of the SLOG your failover script on A switches A to backup and on node B it turns B from backup to master: on B, pool is being imported as well as the local NVMe is being attached to the pool.
But how to sense on dead of the SLOG? By devd?
And another question: If the pool on A dies, will the synced pool on B allow to add the local NVMe to pool to act as SLOG?
(A) So this might look like
Code:
A_da0 <--HAST--> B_da0
A_da1 <--HAST--> B_da1
A_nvme* B_nvme
* is attached to hatank (hada0 = {A,B}_da0, hada1 = {A,B}_da1 ) pool
Or do you think, it is better to configure each NVMe to be mirrored by using hast, so both NVMes could die (TBW exhausted) almost at same time. BTW: TBW death could also occure on locally mirrored SLOG, right?
(B) So this might look like
Code:
A_da0 <--HAST--> B_da0
A_da1 <--HAST--> B_da1
A_nvme <--HAST--> B_nvme
What might be best solution?
BTW: L2ARC does not need to be redundant, but would it be a good idea to mirror it using HAST since lost read cache might have an impact on pool performance?