--- title: "Storage" description: "" --- Talos is known to work with Rook, Mayastor (OpenEBS) and NFS. ## Rook We recommend at least Rook v1.5. ## NFS The NFS client is part of the [`kubelet` image](https://github.com/talos-systems/kubelet) maintained by the Talos team. This means that the version installed in your running `kubelet` is the version of NFS supported by Talos. ## Mayastor (OpenEBS) ### Video Walkthrough To see a live demo of this section, see the video below: ### Prep Nodes Either during initial cluster creation or on running worker nodes, several machine config values should be edited. This can be done with `talosctl edit machineconfig` or via config patches during `talosctl gen config`. - Under `/machine/sysctls`, add `vm.nr_hugepages: "512"` - Under `/machine/kubelet/extraMounts`, add `/var/local` like so: ```yaml ... extraMounts: - destination: /var/local type: bind source: /var/local options: - rbind - rshared - rw ... ``` - Either using `kubectl taint node` in a pre-existing cluster or by updating `/machine/kubelet/extraArgs` in machine config, add `openebs.io/engine=mayastor` as a node label. If being done via machine config, `extraArgs` may look like: ```yaml ... extraArgs: node-labels: openebs.io/engine=mayastor ... ``` ### Deploy Mayastor Using the [Mayastor docs](https://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor) as a reference, apply all YAML files necessary. At the time of writing this looked like: ```bash kubectl create namespace mayastor kubectl apply -f https://raw.githubusercontent.com/openebs/Mayastor/master/deploy/moac-rbac.yaml kubectl apply -f https://raw.githubusercontent.com/openebs/Mayastor/master/deploy/nats-deployment.yaml kubectl apply -f https://raw.githubusercontent.com/openebs/Mayastor/master/csi/moac/crds/mayastorpool.yaml kubectl apply -f https://raw.githubusercontent.com/openebs/Mayastor/master/deploy/csi-daemonset.yaml kubectl apply -f https://raw.githubusercontent.com/openebs/Mayastor/master/deploy/moac-deployment.yaml kubectl apply -f https://raw.githubusercontent.com/openebs/Mayastor/master/deploy/mayastor-daemonset.yaml ``` ### Create Pools Each "storage" node should have a "MayastorPool" that defines the local disks to use for storage. These are later considered during scheduling and replication of data. Create the pool by issuing the following, updating as necessary: ```bash cat <