Hi, we have a cluster with five nodes. All nodes have Proxmox installed on SSD and 4 x 2 TB SATA (3.5" 7200 RPM) ZFS Raid 10. All nodes have between 90 GB and 144 GB RAM.
On nodes 1 to 4, we have about 30-40 LXC container with Moodle on each node. All databases are on external server.
All LXC are replicated on other node once. All LXC on node 1 are replicated on 3 (and vice versa). All LXC on node 2 are replicated on 4 (and vice versa). Replication is every 30 minutes.
We are seeing that doing a "du -sh /var/www/moodledata" on a LXC or in directory pool takes minutes!! (data is between 50-200 GB)
Looking on wiki, we saw this https://pve.proxmox.com/wiki/ZFS:_Tips_and_Tricks#LXC_with_ACL_on_ZFS
ZFS uses as default store for ACL hidden files on filesystem. This reduces performance enormously and with several thousand files a system can feel unresponsive. Storing the xattr in the inode will revoke this performance issue.
And we applied to rpool/data but with all data in.
How can apply this change to existing data? Maybe a replication to other node, delete replication, make replication and move to original node?
Is this our bottleneck?
Can we improve our performance?
Also nodes 1-3 have a nvme SSD on PCI card but is a consumer SSD (Samsung SSD 970 EVO Plus 250GB), used as cache (L2ARC) , would improve performance?
On nodes 1 to 4, we have about 30-40 LXC container with Moodle on each node. All databases are on external server.
All LXC are replicated on other node once. All LXC on node 1 are replicated on 3 (and vice versa). All LXC on node 2 are replicated on 4 (and vice versa). Replication is every 30 minutes.
We are seeing that doing a "du -sh /var/www/moodledata" on a LXC or in directory pool takes minutes!! (data is between 50-200 GB)
Looking on wiki, we saw this https://pve.proxmox.com/wiki/ZFS:_Tips_and_Tricks#LXC_with_ACL_on_ZFS
ZFS uses as default store for ACL hidden files on filesystem. This reduces performance enormously and with several thousand files a system can feel unresponsive. Storing the xattr in the inode will revoke this performance issue.
Code:
zfs set xattr=sa dnodesize=auto vmstore/data
And we applied to rpool/data but with all data in.
How can apply this change to existing data? Maybe a replication to other node, delete replication, make replication and move to original node?
Is this our bottleneck?
Can we improve our performance?
Also nodes 1-3 have a nvme SSD on PCI card but is a consumer SSD (Samsung SSD 970 EVO Plus 250GB), used as cache (L2ARC) , would improve performance?