Hi,
I am currently performing some test of a newly built server for a small business ( Radiology center).
The system is a follows :
- Ryzen 7950x
- Asus Pro Art X670E
- HBA : broadcom 9400 16I
- Storage : * 4 SAS SSD Samsung PM1643a 1.92 TB +1 Cold
* 4 SAS SSD Samsung PM1643a 960 GB +1 Cold
* 4 Ironwolf Pro 10 TB + 1 Cold
* 2 Kingstone DC600 SATA SSD 480 + 1 Cold
Use Case :
The business uses mainly two softwares :
- PACS ( Picture archiving and communication system) which centralizes all the image from the different machines in DICOM format ( More on that later)
- RIS ( Radiological information system) which recordes patient informations and report on the exams.
Both software relies on SQL databases to run ( separate) and run only on windows.
The PACS receives and store the images in dicom format which splits the images into small files
The RIS software relies heavily on the SQL database ( 400 GB at the time of writing) but does not generate any addtionnal files to be stored.
This system will be entirely backed up in the current server the center is using ( probably with PBS) ( Dell T340 poweredge)
ZFS layout
I am planning to use proxmox with 2 windows VMs ( Windows Server 2022 ) one for pacs and one for ris.
The ZFS layout I have chosen is the following :
- 4 SAS SSD Samsung PM1643a 1.92 TB Setup in a raid 10 mirror for short term storage of the images ( up to 1 year worth of data) => 1 Zvol specifically dedicated
- 4 Ironwolf Pro 10 TB setup in raidZ1 configuration for long term storage of the the images => 1 Zvol specifically dedicated
- 4 SAS SSD Samsung PM1643a 960 GB Setup in a raid 10 mirror for storing the VMs and databases. => 1 ZVOL partionned in windows later
I have analyzed the PACS images of the current year using wintree and came up with the following data on the sizes
Size of the file In KB | Number of files | Percentage |
---|---|---|
515 | 4 657 872 | 30,8% |
8 | 4 315 601 | 28,6% |
42 | 2 156 243 | 14,3% |
45 | 1 058 961 | 7,0% |
41 | 1 017 747 | 6,7% |
9 | 234 616 | 1,6% |
44 | 230 710 | 1,5% |
7 | 119 470 | 0,8% |
Rest ( Multiple other sizes from 7KB to 2000 KB) | 1 323 351 | 8,8% |
Considering the data i provided , what do you guys advise me on the the zfs parameters (ashift…) and zvol block size i should use for each pool and the block size in the windows VMs
For the VM/dababase pool, I read that the blocksize of the pool should match the record size of the database but i cannot find the recordsize of my databases on MSSQL. If you have any idea how to get this information, that would be very helpful. Do you think i should make separate Zvol ? ( 1 For VMs and 1 for Databases ? )
For the HDD pool, I have not added any caching to it as this pool will be accessed only once or twice per year to move data from the Short term pool and occasionnaly for read access but I would like to be able to search for files easily in this pool and i tought a special metadata vdev would be a good idea
The server is not yet deployed and I can completely reconfigured right now, if you find have any advice on the way my pools are set up, I would love to hear it.
Thank you in advance for you help