Hello,
We are trying to setup a pair of ZFS file servers, each backing-up data from
another.
The simplified setup is as follows:
server1
tank/prod/web
tank/backup/mail
server2
tank/prod/mail
tank/backup/web
server1:tank/prod/web is a test setup with 10GB of data for 60 websites.
server2:tank/prod/mail is quite heavily loaded: it is 900GB with about 20k mail
accounts accessed from 3 mail servers(postfix+pop+imap) over NFS
We periodically sync production file systems between the two servers.
server2 pulls changes from server1:tank/prod/web as follows:
1. server1: zfs snapshot tank/prod/web at repli_N+1
2. server2: ssh server1 zfs send -R -I @repli_N tank/prod/web at repli_N+1 |
zfs recv -d -F tank/back
3. server1: zfs destroy tank/prod/web at repli_N
4. next send/receive in 30 minutes.
Our problem is that receiving the file system on server2 into tank/backup
causes a lock of the production file system tank/prod/mail.
The NFS clients (mail servers) cannot reach the NFS server2 at all.
All postfix processes at mail serves hang on the I/O and the load goes up to
100+.
After a while everything goes back to normal.
This behaviour is most noticeable when we try to add new data to
server1:tank/prod/web.
The mail servers scream , mail is not delivered, we get downtime notifications.
Yes, the snapshot diff is bigger then, because we are adding new data.
However the total of server1:tank/prod/web is 9.5GB. It is not that big.
We did not succeed to reproduce this behaviour with simple dd + zfs send + zfs
receive.
Real production data seems to be needed.
The questions are:
1. Is it possible that receiving a fs at one path blocks a file system at
another. Is the whole pool locked?
2. Is it possible to save the setup with 2 production servers backing up each
other
3. Otherwise would it help to have two storage pools - prod/ and backup/ instead
of tank/prod tank/backup
4. Or should we switch to a Master->Replicator setup?
Best regards,
Byte tech team
---------------------------------------
zpool status tank:
pool: tank
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
c2t0d0 ONLINE 0 0 0
c2t1d0 ONLINE 0 0 0
c2t2d0 ONLINE 0 0 0
c2t3d0 ONLINE 0 0 0
c2t4d0 ONLINE 0 0 0
c2t5d0 ONLINE 0 0 0
raidz2-1 ONLINE 0 0 0
c2t6d0 ONLINE 0 0 0
c2t7d0 ONLINE 0 0 0
c2t8d0 ONLINE 0 0 0
c2t9d0 ONLINE 0 0 0
c2t10d0 ONLINE 0 0 0
c2t11d0 ONLINE 0 0 0
logs
mirror-2 ONLINE 0 0 0
c3t2d0 ONLINE 0 0 0
c3t3d0 ONLINE 0 0 0
--
This message posted from opensolaris.org