Primocache for diskless program (ccboot)

FAQ, getting help, user experience about PrimoCache
cemara
Level 3
Level 3
Posts: 13
Joined: Sun Feb 25, 2018 12:58 am

Primocache for diskless program (ccboot)

Post by cemara »

I'm planning to use primocache for a diskless program called ccboot.
It operates based on ISCSI protocol.
http://www.ccboot.com/

CCboot has this "gamedisk" which is essentially D drive for clients,
And the problem is my gamedisk requires large size hdd due to increasing content.
and as you know large size ssd is very expensive

I was wondering if i could use primocache for a 10TB HGST drive paired with a 3000 mhz ram (possibly more with OC)
Would i see any benefit with this scenario?
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Primocache for diskless program (ccboot)

Post by Support »

Do you mean 3GB ram?
If L1/ram is used for writing-buffer in ccboot, I think it is enough.
For read acceleration, it depends on how much data amount is frequently accessed in your gamedisk.
cemara
Level 3
Level 3
Posts: 13
Joined: Sun Feb 25, 2018 12:58 am

Re: Primocache for diskless program (ccboot)

Post by cemara »

Do you mean 3GB ram?
No i mean high speed ram such as DDR4 3200 mhz ram
such as this one
https://www.amazon.com/Corsair-Vengeanc ... B0143UM4TC

I was under impression better speed (more mhz) would give better cache performance? CMIIW though
If L1/ram is used for writing-buffer in ccboot, I think it is enough.
For read acceleration, it depends on how much data amount is frequently accessed in your gamedisk.
diskless clients rely on ISCSI traffic, and the diskless program (ccboot) already has its own caching method using ram /ssd
Would i see a benefit of using this compared to ccboot cache? Cause that's what i was hoping to achieve
Currently using 2x black WD in raid 0 setup, but the read speed just doesn't cut it for high-end games such as PUBG.
Some people advise using SSD, but 2tb ssd setup isn't exactly cheap..
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Primocache for diskless program (ccboot)

Post by Support »

If you want to improve the read speed of accessing certain games, I think a ramdisk would be better. Store these games in a ramdisk and use this ramdisk for ccboot.
cemara
Level 3
Level 3
Posts: 13
Joined: Sun Feb 25, 2018 12:58 am

Re: Primocache for diskless program (ccboot)

Post by cemara »

support wrote:If you want to improve the read speed of accessing certain games, I think a ramdisk would be better. Store these games in a ramdisk and use this ramdisk for ccboot.
Ramdisk uses ram right? Then there isn't gonna be enough space, probably max ramdisk we could have right now is around 256 gb, e.g 8 sticks of 32 gb ram.. it's gonna cost a lot too, probably better to get a 2tb ssd :)
besides i've tried softperfect ramdisk before, and it's rather unstable and i've had some issues
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Primocache for diskless program (ccboot)

Post by Support »

Well, then you may try PrimoCache. As it is a caching program, when cache space is full, PrimoCache will move out old data and store new data. The performance boost depends on how much source data will be accessed and how often they are accessed, besides L1 cache size.
User avatar
Jaga
Contributor
Contributor
Posts: 692
Joined: Sat Jan 25, 2014 1:11 am

Re: Primocache for diskless program (ccboot)

Post by Jaga »

I've used Softperfect in the past (for about the last 6 years), and being familiar with RAMdrives I can say that Primo RamDisk is a much better program, with far more features. I've used it in a production environment since switching now for ~5 months and haven't encountered any issues at all.

If you're going to need a large (1TB+) non-volatile RAMdisk, it's going to take *forever* to save at shutdown and load at startup, if you're using conventional spindle drives for the underlying image instead of SSDs. The reason is the size of the image you're saying you need. If you're going to be dealing with an image size over 64gig, I'd highly recommend a SSD or SSD Array holding the image, purely for speed.

There is of course no comparison between a RAMdisk and a SSD drive - the RAMdisk will outperform any of them except the NVME variety. But at that point, you're getting back into expensive hardware if you buy a large (1TB+) NVME SSD. A 1TB Samsung M.2 NVME is over $600, and offers no redundancy.

A very large PrimoCache caching solution on top of a good SSD is another option, as Support suggested. And it will cost a lot less, but it is much more hit-and-miss as to what PrimoCache is going to cache for you, and the overall speed won't compare to having a RAMdisk holding the content.

Perhaps you could expand a bit on what you *really* need, and we can help further. You've said you need space - is it just 1TB or 2+? Are you concerned with ccboot Server boot-up times? Do you need the volume(s) you're hosting to be non-volatile, or can they wipe with every shutdown or a crash? Are you truly concerned with having the fastest volumes possible (RAMdisk) vs just a SSD? How much money can you afford to throw at the solution? And, how will the 'gamedisk' be accessed - totally random across all the data, or just certain games at a time? Will you have multiple clients connecting to it to run different games simultaneously, or just a single client accessing a single game for a period of time (days to weeks)?

The best solution for you depends on your need, and budget.
cemara
Level 3
Level 3
Posts: 13
Joined: Sun Feb 25, 2018 12:58 am

Re: Primocache for diskless program (ccboot)

Post by cemara »

Jaga wrote:I've used Softperfect in the past (for about the last 6 years), and being familiar with RAMdrives I can say that Primo RamDisk is a much better program, with far more features. I've used it in a production environment since switching now for ~5 months and haven't encountered any issues at all.

If you're going to need a large (1TB+) non-volatile RAMdisk, it's going to take *forever* to save at shutdown and load at startup, if you're using conventional spindle drives for the underlying image instead of SSDs. The reason is the size of the image you're saying you need. If you're going to be dealing with an image size over 64gig, I'd highly recommend a SSD or SSD Array holding the image, purely for speed.

There is of course no comparison between a RAMdisk and a SSD drive - the RAMdisk will outperform any of them except the NVME variety. But at that point, you're getting back into expensive hardware if you buy a large (1TB+) NVME SSD. A 1TB Samsung M.2 NVME is over $600, and offers no redundancy.

A very large PrimoCache caching solution on top of a good SSD is another option, as Support suggested. And it will cost a lot less, but it is much more hit-and-miss as to what PrimoCache is going to cache for you, and the overall speed won't compare to having a RAMdisk holding the content.
Appreciate the detailed explanation,
Long ramdisk Boot time was also one of my main concern as well.
But in my case i'm using custom ups to prevent the server from turning off during blackout.
It did happen once or twice though during long blackout.

Another strange issue with ramdisk was i had to reformat the ramdisk drive if the server reboots,
then i have to copy the entire content again after formatting.
There was also this one time image update wasnt saved into ramdisk,
I was using a cheap 2133 mhz ram from geil, not sure if that could be a factor,
In general i think the read write process into the ramdisk wasnt stable
Jaga wrote: Perhaps you could expand a bit on what you *really* need, and we can help further. You've said you need space - is it just 1TB or 2+? Are you concerned with ccboot Server boot-up times? Do you need the volume(s) you're hosting to be non-volatile, or can they wipe with every shutdown or a crash? Are you truly concerned with having the fastest volumes possible (RAMdisk) vs just a SSD? How much money can you afford to throw at the solution? And, how will the 'gamedisk' be accessed - totally random across all the data, or just certain games at a time? Will you have multiple clients connecting to it to run different games simultaneously, or just a single client accessing a single game for a period of time (days to weeks)?

The best solution for you depends on your need, and budget.
I need around 4-6 Tb i suppose,
Budget probably under 1K,

I'm considering 4x firecuda @2TB each which is rated at 150-180 MBps
Then i will raid 5 to get 3x times read speed and 1x drive failure protection.
3 times of that should get me near the SATA 3 max transfer speed limit.
But someone on other forums said >100MBps is only good for sequential read, not random IO

I'm not sure yet how gamedisk is accessed,
I have 30 clients, and basically server-client is communicating on ISCSI protocol,
and client is given the same gamedisk drive as the one in server.
Any changes on the gamedisk server requires the client to reboot their PC in order to see the changes.

Server boot-up times is not a concern, the problem is for large AAA games client have to wait too long before it loads.
Other ccboot users solve this by replacing the gamedisk from hdd from ssd, that's why i thought primocache could help somehow.

Edit : this is the current r/w speed of my gamedisk

Image

Kinda strange cause i raid 0 2 of this drive :
http://hdd.userbenchmark.com/WD-Black-1 ... ating/1822

Looks like crystaldiskmark only reads one of them?
InquiringMind
Level SS
Level SS
Posts: 477
Joined: Wed Oct 06, 2010 11:10 pm

Re: Primocache for diskless program (ccboot)

Post by InquiringMind »

cemara wrote: But in my case i'm using custom ups to prevent the server from turning off during blackout.
It did happen once or twice though during long blackout.
Note that a UPS won't prevent bluescreen crashes, so while a good idea if your power supply is less than 100%, data backups are still important and any use of PrimoCache's "Defer Write" feature (which boosts write speeds considerably) does carry an increased risk of data loss.
cemara wrote: I was using a cheap 2133 mhz ram from geil, not sure if that could be a factor,
In general i think the read write process into the ramdisk wasnt stable
With regard to memory, faster will give better results but these are not likely to be noticeable outside of benchmarks. Going for more, cheaper RAM would likely serve you better.
cemara wrote:But someone on other forums said >100MBps is only good for sequential read, not random IO
Hard disks generally have far poorer random IO (as your DIskmark shows, comparing the 4KB figures with the sequential). 4KB read/writes (a single cluster in NTFS normally) is a worst case situation though and SSDs will typically offer 10x the random IO performance of hard disks and RAMdisks another 10x boost.

Windows file caching though will cover most such cases quite well - benchmarks disable it but can't disable PrimoCache which is one reason why PrimoCache can offer such an apparent increase in performance.
cemara wrote:I have 30 clients, and basically server-client is communicating on ISCSI protocol,
and client is given the same gamedisk drive as the one in server.
Any changes on the gamedisk server requires the client to reboot their PC in order to see the changes.
In this case, your biggest limitation is almost certainly your network. Even Gigabit Ethernet is unlikely to provide more than 70MB/s and that may have to be divided between your clients depending on network setup (e.g. whether you're using a hub that shares bandwidth or a switch that improves performance by keeping connections separate). In this case, deploying PrimoCache on your clients (and providing them with extra RAM) may be a better idea since it would lessen network traffic as well as server disk usage.
User avatar
Jaga
Contributor
Contributor
Posts: 692
Joined: Sat Jan 25, 2014 1:11 am

Re: Primocache for diskless program (ccboot)

Post by Jaga »

Everything InquiringMind said was spot on. Faster RAM won't be that noticeable, even when using a RAMdisk. The reason is other system bottlenecks - like the network backbone. Even with a true gigabit-per-port switch, you're going to saturate either the network (which can lead to too many packet collisions) or the server's ability to fetch data fast enough when multiple clients are requesting. The strain on a single non-mirrored platform is just going to be too high when multiple clients are active and requesting data.

However - InquiringMind's suggestion of dropping PrimoCache on the client side is actually far more efficient, and smart. The reason is that iSCSI drives are drives that Windows can see 'raw', meaning PrimoCache (on each client) can cache their contents client-side instead of server-side. And if you can combine that with a client-side L2 cache that Primo reads from at boot time (like a local SSD), you'll *significantly* reduce server reads across the board. At that point, you can get away with a RAID 10 stripe/mirror array, which will give you the tolerance of a perfect mirror, and the redundancy of a stripe. They are rated as 'very high performance', and require a minimum of 4 disks. Info on the different arrays is here.

The only drawback to that solution, is that your budget of 1k is VERY low to accomplish the client-caching strategy. With 30 clients, you'd run most of your budget out just getting 30 copies of PrimoCache, which leaves no room for additional RAM on those clients (which Primo needs), or local SSD drives (to help with local L2 caching to relieve server/network stress). It sounds like either the budget needs to go up considerably, or you need to reconsider if this is something that has an affordable business model to get decent speeds with.

What the other CCBoot users are doing to solve the issue is merely a faster drive on their server to try and alleviate issues with that part of the bottleneck. Going from a HDD to a SSD there is faster, but it's nothing like going to PrimoCache+L2 on clients would be, which is the ultimate good solution for this in my opinion.

If you're absolutely stuck with the $1k budget, then I'd recommend a larger RAID 1 SSD drive pair on your server (to give redundancy + speed for reading), along with a copy of PrimoCache and as much RAM as you can afford to drop in the server (speed is negligible for the RAM). Don't enable write-caching unless you have a great UPS on the server. That's the lowest budget cost with the highest impact that I can envision.
Post Reply