szatmary / PlotFS

a fuse filesystem for efficiently storage of Chia plot files
MIT License
50 stars 9 forks source link

Feature Request: #5

Closed robkthx closed 1 year ago

robkthx commented 2 years ago

First of all, thank you for sharing your project. I've been plotting a JBOD with PlotFS for about a month and it has held up great so far. I do have two suggestions that would make life easier for me.

I'd like to move my existing plotted ext4 JBOD to use PlotFS, but I'd like to logically keep the JBODs separate, in order to harvest them both from one machine.. This doesn't seem possible at the moment without using two separate machines.

How about a plotfs --move_plot that functions the same as plotfs --add_plot but cleans up the source file after it is successfully copied? Right now I have to clean up the plot, either manually or through a script, when this feels like it should be easily accomplished in one command.

Thanks again,

szatmary commented 2 years ago

added --remove_source flag that works in conjunction with --add_plot

szatmary commented 2 years ago

@robkthx I don't understand the JBOD issue. Can you expand further?

robkthx commented 2 years ago

Basically storage pools - so I can keep disks on JBOD1 separate from disks on JBOD2. I'd like to keep them separate so that any plots that span across disks are contained within the same JBOD enclosure.

Taking the plotfs -> /var/local/plotfs/plotfs.bin relationship, to a plotfs ->/var/local/plotfs/<poolname>.bin. I'm thinking it wouldn't be too hard to implement (but I'm not a dev) so that instead of one /var/local/plotfs/plotfs.bin you could have multiple ones with user provided names. So for example, I'd have /var/local/plotfs/jbod1.bin and /var/local/plotfs/jbod2.bin. Also the commands would need accept the new <poolname> parameter, i.e. plotfs <poolname> --add_device and plotfs <poolname> --add_plot

szatmary commented 2 years ago

Ok, I understand now. I considered doing that, But honestly I do not see the use case.

The only use case I think of is if someone would want to move some, but not all, disk between machines. It's seems like an issue not likely to come up. But I had a different solution for that, if I were ever to build it.

robkthx commented 2 years ago

I am that use case lol.

I think you're underestimating the amount of people who plot on one machine, and sneakernet the filled drive to a separate farming machine. I am doing that exact same process, but on a JBOD scale, and not per drive.

szatmary commented 2 years ago

You can still sneaker net with 2 shuttle drives. Plot to Drive A, sneaker to harvester, Copy A to harvester while plotting to B, then swap. If the farm is large, one extra shuttle drive is not a big deal, and if the farm is small, then the extra time doesn't really matter. Anything else is just convenience. I built this for my own personal usage and open sourced it to be a good citizen.

I have not underestimated the amount to people who have reached out to me or donated. And the interest has been very low. I am not intending to make this a business, but I do need to decide where I spend my limited personal time. I have received about $100 USD in donations so far from 2 donators, And I appreciate that very much! because I expected nothing. But I probably have about 20 hours invested already, so at the moment the community has valued this work at $5 USD an hour.

So unless there is WAY more demand, a sponsor of some kind, or I personally need a feature, I'm not sure if there will be any new major work.

robkthx commented 2 years ago

I have not underestimated the amount to people who have reached out to me or donated.

LOL =)

So unless there is WAY more demand, a sponsor of some kind, or I personally need a feature, I'm not sure if there will be any new major work.

Understandable. Please don't think I'm demanding anything, just thought I'd share my thoughts after using PlotFS for a few weeks.

szatmary commented 2 years ago

FYI. I am working on a solution for this.

johnathon-b commented 2 years ago

Having separate partitions would be useful in the case of how I am building my farms as well. Filling enclosures of drives locally and dropping off at a colo. Having a way to segment a specific set of drives to a specific plotfs partition would be great. That brings complications

I can create a separate issues/feature request but while I was working on the farm this weekend I realized that I will be depreciating a subset of these drives in the coming months. After reading through this issue I've also realized I'm also spanning over a number of enclosures. I don't mind having plots split between the enclosures, I'll take all the space I can get, but I do believe I will need the ability to evaluate a drive and have that data move to other available space.

szatmary commented 2 years ago

Having separate partitions would be useful

You can use partitions, just partition the drive and thaw the -part path

johnathon-b commented 2 years ago

By partitions, I mean being able to partition off specific drives within the PlotFS file system to be associated with each other.

This way if I take a jbod from one system to another, I do not have to worry about plots spanning over the drives of different jbods.

May require multiple bin files to store the plot data. Isn't a big need right now but an idea I had as I build out more and more storage.

benengele commented 1 year ago

@johnathon-b I am also hesitating to commit all my plots into a single PlotFS...

I am successfully running PlotFS in Docker with one harvester handling those plots. Right now I only use a single instance, but I am planning to replicate the setup when the first PlotFS reaches ~ 50 TB.

Docker image can be found here: https://github.com/benengele/PlotFS-docker If you are interested I can share a docker-compose.yml that builds and starts PlotFS as well as a chia harvester in a separate container.

rabbitii commented 1 year ago

Docker image can be found here: https://github.com/benengele/PlotFS-docker If you are interested I can share a docker-compose.yml that builds and starts PlotFS as well as a chia harvester in a separate container.

I am very interested in this docker-compose.yml. Post it, please.

johnathon-b commented 1 year ago

I don't know if y'all are pooling but PlotFS works really well with FlexFarmer on Flexpool. No need to run the full infrastructure if you have edge devices running drives like me.

benengele commented 1 year ago

Added my docker-compose.yml to the repo as example: https://github.com/benengele/PlotFS-docker/blob/main/docker-compose.yml