libopenstorage / openstorage

A multi-host clustered implementation of the open storage specification
Apache License 2.0
525 stars 118 forks source link

Select type of storage in multitype drivers #721

Open msolefonte opened 5 years ago

msolefonte commented 5 years ago

Is this a BUG REPORT or FEATURE REQUEST?: Just a QUESTION, but could be a FEATURE REQUEST depending on the developers being conscientious or not of this comportment.

What happens: Each one of the main drivers available has the constant Type declared, which specifies the type of storage the driver is going to serve. For instance, in the AWS driver the Type is api.DriverType_DRIVER_TYPE_BLOCK and, in the NFS one, it is api.DriverType_DRIVER_TYPE_FILE. This is fine is both cases, because EBS is focused on Block Storage and NFS in File Storage.

However, there are some drivers that have a type declared while the server offers more alternatives. For example, CEPH or Portworx should accept block, file and object storage, but their drivers (CoprHD and PWX) have the Type api.DriverType_DRIVER_TYPE_BLOCK declared. Does this mean that only that mode is compatible? If yes, would it be possible to use the other storage types modifying the driver file? Should not be there different alternatives?

lpabon commented 5 years ago

that's a great question. For instance, I'm changing NFS to type BLOCK because it will also support size for volumes (in my CSI based NFS driver which I am still working on). So I think BLOCK should be the norm.

lpabon commented 5 years ago

But yes, only one mode is set per driver at the moment. If we ever see the need to add something different, we can then discuss that use case.

msolefonte commented 5 years ago

@lpabon Can I assume that BLOCK storage is going to be the default type or are BLOCK and FILE going to live together? I can understand that BLOCK is better for attachment and synchronization, but I love options and possibilities. Also, If you finish the design of BLOCK NFS (Which is pretty funny for me), would it be available for general usage?

Also, as an off-topic (sorry), I tried to use OpenStorage together with CSI and Kubernetes, but I think that there is no enough information for someone that does not know anything about Kubernetes. At least and environment setup would be great.

Thank you for the answer.