Jump to content
  • 0

Best practice to use both diskpool and Primocache


Javen

Question

I just migrate from Unraid to Windows based Nas and evaluating storage solution. Now I'm trying to use DP and primocache together.

I have 2 SSDs(2TB each) and 3 HDDs(16Tx2 +14TB).

 

Why not using DP alone? 

This is because:

1. DP SSD cache is only for writing.

2. I have VMs/Containers stored on the pool and I would like to accelerate their performance as well.

3. Though it's possible to store VMs/Containers to SSD directly, still I love the idea to gather all disks together.

 

So what I have tried till now?

1. allocate all HDDs to DP to create only one pool. Partition the both SSD to 2 volumes. One is for reading and one is for writing. Allocate the writing cache volume to DP and select them as SSD in SSD optimizer plugin. (I have some folders duplicated, so need 2 SSDs to support real time duplication)

2. allocate reading cache volumes on both SSD to Primocache L2 cache and set them to accelerate all underline HDDs. I load accelerate Reading preset as I only want to Primocache for reading.

Why I don't use Primocache alone for caching?

As I want to accelerate the whole pool, actually I have various types data on it. Some of them are very important and I also set duplication in DP. I heard that there is chance to break these data if Primocache failed to flush the cache to HDDs. Though I do have a UPS, still I don't want to risk my data in case of system crash.

 

Does the current solution fulfil my expectation?

Not sure. If I don't look at benchmark stats, it's OK. However, when I tried crystaldisk mark on both host and VM, I found that:

1. On the host, the acceleration is working. However it's more like purely accerlating by SSD. (~3000MB on seq read and write) I do have 4GB*2 L1 cache set for Primocache

2. On the VM, the reading acceleration is working. It's just like accelerated by RAM (20000MB+ seq read). However, seems writing is another story. It's ~300MB seq write.

 

So I would like to understand:

1. firstly, is there a better solution? Or am I doing anything wrong?

2. If no for 1#, is there a way to boost writing performance in VMs as well? When I use Primocache for both reading & wrting, inside the VM it can score ~3000MB/s for seq reading and ~1000MB/s for seq writing.

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

From what I've seen, that's fairly similar to what others have done. 

As for a "better solution", that absolutely depends on what you're trying for.  If you want faster speeds, a block based RAID solution will absolutely be faster overall.  However, it can be a lot more fragile, unless you just have disks (and money) to throw at the problem. 

But for use with StableBit DrivePool, that sounds reasonable.

Personally, I like having an SSD for the pool and use the SSD Optimizer. This way, you can use the Ordered file placement option and fill the drives to capacity.  And if only want to use one disk and do have duplication, you can add the SSD and the pool to it's own pool, and use the SSD Optimizer there, and then just use the ordered file placement balancer on the "sub pool".    With PrimoCache, writes to the pool would still be done to the SSD drive, so flushing the cache should be a lot faster, overall. 

Link to comment
Share on other sites

  • 0

Thanks a lot @Christopher (Drashna) for the suggestion. I would like to have a try. 

 

What I have done so far(Just want to confirm if I do it correctly):

1. I create 2 pools. The pool d: consisted with 3 HDDs, and pool F: consist with pool d: and one SSD.

image.png.95ec89c8c4d1258bf1ca0c64c2d624a6.png

2. I set file duplication in pool d: and set Disk Space Equalizer or Ordered File Placement there. (Despite the two plugings are different ways to balance file, is there any other difference in other dimensions e.g. performance, data reliability?)

image.thumb.png.a76128ac5d8b50884a9c3a3b43401def.png

3. I set SSD Optimizer on pool F:. Per my understanding, other balancing plugin actually doesn't make any sense as the 'parent' pool only consists by 2 devices. One is used for SSD cache already so there isn't enough device for this pool to "balance" any data. Disable all these plugins is OK as well. Is my understanding right?

p2.thumb.png.f6a5cd21946a43e1d9de0a72369be00c.png

4. Finally, I go to Primocache, set L1/L2(the other SSD) cache only for reading to all HDDs. (I'm not sure if I should add the SSD for pool cache here as well).

image.png.43d304f00458694f60de6aa3694c0e85.png

 

 

What's the result?

Now I remove all unneccessary drive letters but just keep the "parent" pool(previous pool F:) assigned. I ran a disk test on that, but seems Primocache L1 read cache doesn't work. It's more like a pure SSD accelereated pool.

 image.png.afbdfb1d7c96c71b794be77cd3bc87d9.png

The interesting part is that once I pause Primocache cache task and do the test again, it shows almost the identical result both on reading and writing. Isn't that SP SSD cache only for writing?

image.png.e71775fb37f239619e999e3b20affc9e.png

If I add the SP SSD cache disk into PrimoCache cache task as well, here I got(L1 cache seems working now)

image.png.52a1f6f69208624b748689033a6c7d5b.png

 

So is this the correct way to set up?

1. Set all balance plugins/rules and file duplications on the HDDs pool(aka. "sub" pool) (Is Disk Space Equalizer and Ordered File Placement different other than its nature of different way for placing files?)

2. Set SSD Optimizer on the "parent" pool. (Other plugins beside SSD Optimizer can be disabled as well since it makes no differences?)

3. Add all HDDs and the SSD for caching the pool to PrimoCache and assign L1/L2 cache only for reading

In this way, I do have decent acceleration and no risk of data lossing.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...