Skip to content

Commit c5f7e46

Browse files
balamuruganadjwfyi
andauthored
Refactor documentation (#800)
Signed-off-by: Bala.FA <bala@minio.io> Co-authored-by: Daryl White <53910321+djwfyi@users.noreply.github.com>
1 parent 136b8ac commit c5f7e46

27 files changed

+1277
-1158
lines changed

README.md

+14-76
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
DirectPV
2-
----------
1+
# DirectPV
32

4-
DirectPV is a CSI driver for [Direct Attached Storage](https://en.wikipedia.org/wiki/Direct-attached_storage). In a simpler sense, it is a distributed persistent volume manager, and not a storage system like SAN or NAS. It is useful to *discover, format, mount, schedule and monitor* drives across servers. Since Kubernetes `hostPath` and `local` PVs are statically provisioned and limited in functionality, DirectPV was created to address this limitation.
3+
[DirectPV](https://github.com/minio/directpv) is a [CSI](https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/) driver for [Direct Attached Storage](https://en.wikipedia.org/wiki/Direct-attached_storage). In a simpler sense, it is a distributed persistent volume manager, and not a storage system like SAN or NAS. It is useful to *discover, format, mount, schedule and monitor* drives across servers.
54

65
Distributed data stores such as object storage, databases and message queues are designed for direct attached storage, and they handle high availability and data durability by themselves. Running them on traditional SAN or NAS based CSI drivers (Network PV) adds yet another layer of replication/erasure coding and extra network hops in the data path. This additional layer of disaggregation results in increased-complexity and poor performance.
76

87
![Architecture Diagram](https://github.com/minio/directpv/blob/master/docs/images/architecture.png?raw=true)
98

10-
### Quickstart guide
9+
## Quickstart
1110

1211
1. Install DirectPV Krew plugin
1312
```sh
@@ -24,86 +23,25 @@ $ kubectl directpv install
2423
$ kubectl directpv info
2524
```
2625

27-
4. Discover and add drives for volume scheduling.
26+
4. Add drives
2827
```sh
29-
# Discover drives to check the available devices in the cluster to initialize
30-
# The following command will create an init config file (default: drives.yaml) which will be used for initialization
28+
# Probe and save drive information to drives.yaml file.
3129
$ kubectl directpv discover
3230

33-
# Review the drives.yaml for drive selections and initialize those drives
31+
# Initialize selected drives.
3432
$ kubectl directpv init drives.yaml
3533
```
3634

37-
(NOTE: XFS is the filesystem used for formatting the drives here)
38-
39-
5. Get list of added drives
40-
```sh
41-
$ kubectl directpv list drives
42-
```
43-
44-
6. Deploy a demo MinIO server
45-
46-
DirectPV enforces node constraints where it allocates storage based on the worker node where a pod deploys. If the pod deploys to a worker node with no or insufficient DirectPV-managed drives, DirectPV cannot allocate storage to that pod. DirectPV does not allocate storage from one node to a pod on another node.
47-
48-
Modify the YAML to reflect the node and storage distribution of your Kubernetes cluster.
49-
35+
5. Deploy a demo MinIO server
5036
```sh
51-
# This should create MinIO pods and PVCs using the `directpv-min-io` storage class
52-
$ kubectl apply -f functests/minio.yaml
37+
$ curl -sfL https://github.com/minio/directpv/raw/master/functests/minio.yaml | kubectl apply -f -
5338
```
5439

55-
For air-gapped setups and advanced installations, please refer to the [Installation Guide](./docs/installation.md).
56-
57-
### Upgrade
58-
59-
Firstly, it is required to uninstall older version of DirectPV. Once it is uninstalled, follow [Installation instructions](#Installation) to install the latest DirectPV. In this process, all existing drives and volumes will be migrated automatically.
60-
61-
#### Upgrade using krew
62-
63-
Refer the following steps for upgrading DirectPV using krew
64-
65-
```sh
66-
# Uninstall existing DirectPV installation
67-
$ kubectl directpv uninstall
68-
69-
# Upgrade directpv plugin via krew
70-
$ kubectl krew upgrade directpv
71-
72-
# Install latest DirectPV
73-
$ kubectl directpv install
74-
```
75-
76-
#### Upgrade from DirectPV v3.2.x
77-
78-
For migrating from older versions < v3.2.0, Please refer the [Upgrade Guide](./docs/upgrade.md)
79-
80-
### Security
81-
82-
Please review the [security checklist](./security-checklist.md) before deploying to production.
83-
84-
**Important**: Report security issues to security@min.io. Please do not report security issues here.
85-
86-
### Additional Resources
87-
88-
- [Installation Guide](./docs/installation.md)
89-
- [Upgrade Guide](./docs/upgrade.md)
90-
- [CLI Guide](./docs/cli.md)
91-
- [Security Guide](./docs/security.md)
92-
- [Scheduling Guide](./docs/scheduling.md)
93-
- [Drive Replacement Guide](./docs/drive-replacement.md)
94-
- [Volume Expansion](./docs/volume-expansion.md)
95-
- [Drain a node](./docs/drain-node.md)
96-
- [Driver Specification](./docs/specification.md)
97-
- [Monitoring & Metrics](./docs/metrics.md)
98-
- [Developer Guide](./docs/development-and-testing.md)
99-
- [FAQ](./docs/faq.md)
100-
101-
### Join Community
102-
103-
DirectPV is a MinIO project. You can contact the authors over the slack channel:
104-
105-
- [MinIO Slack](https://slack.min.io/)
40+
## Further information
41+
Refer [detailed documentation](./docs/README.md)
10642

107-
### License
43+
## Join Community
44+
DirectPV is a MinIO project. You can contact the authors over the [slack channel](https://slack.min.io/)
10845

109-
DirectPV is released under GNU AGPLv3 license. Please refer to the LICENSE document for a complete copy of the license.
46+
## License
47+
DirectPV is released under GNU AGPLv3 license. Refer the [LICENSE document](https://github.com/minio/directpv/blob/master/LICENSE) for a complete copy of the license.

docs/README.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# DirectPV
2+
DirectPV is a CSI driver to provision local volumes to Pods using [Direct Attached Storage](https://en.wikipedia.org/wiki/Direct-attached_storage). It comes with two components.
3+
1. `DirectPV plugin` - To be installed on local machine, to manage DirectPV CSI driver.
4+
2. `DirectPV CSI driver` - To be installed on kubernetes cluster, to provision local volumes.
5+
6+
## For new users
7+
Refer below documentation
8+
* [Installation guide](./installation.md)
9+
* [Drive management guide](./drive-management.md)
10+
* [Volume provisioning guide](./volume-provisioning.md)
11+
* [Volume management guide](./volume-management.md)
12+
* [Command reference guide](./command-reference.md)
13+
* [Monitoring guide](./monitoring.md)
14+
15+
## For existing users
16+
Refer below documentation
17+
* [Upgrade guide](./upgrade.md)
18+
* [Node management guide](./node-management.md)
19+
20+
## Further references
21+
* [Volume scheduling guide](./volume-scheduling.md)
22+
* [Issue reporting](./issue-reporting.md)
23+
* [DirectPV CSI driver specification](./specification.md)
24+
* [Troubleshooting guide](./faq.md)

0 commit comments

Comments
 (0)