Files
kubernetes/pkg/volume
Kubernetes Submit Queue 3843108081 Merge pull request #42974 from vmware/VSANPolicyProvisioningForKubernetesOnKubernetesRepo
Automatic merge from submit-queue (batch tested with PRs 42835, 42974)

VSAN policy support for storage volume provisioning inside kubernetes

The vsphere users will have the ability to specify custom Virtual SAN Storage Capabilities during dynamic volume provisioning. You can now define storage requirements, such as performance and availability, in the form of storage capabilities during dynamic volume provisioning. The storage capability requirements are converted into a Virtual SAN policy which are then pushed down to the Virtual SAN layer when a storage volume (virtual disk) is being created. The virtual disk is distributed across the Virtual SAN datastore to meet the requirements.

For example, User creates a storage class with VSAN storage capabilities:

> kind: StorageClass
> apiVersion: storage.k8s.io/v1beta1
> metadata:
>   name: slow
> provisioner: kubernetes.io/vsphere-volume
> parameters:
>   hostFailuresToTolerate: "2"
>   diskStripes: "1"
>   cacheReservation: "20"
>   datastore: VSANDatastore

The vSphere Cloud provider provisions a virtual disk (VMDK) on VSAN with the policy configured to the disk.

When you know storage requirements of your application that is being deployed on a container, you can specify these storage capabilities when you create a storage class inside Kubernetes.

@pdhamdhere @tthole @abrarshivani @divyenpatel 

**Release note**:

```release-note
None
```
2017-03-27 17:00:23 -07:00
..
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-02 14:59:59 -05:00
2017-03-09 18:24:37 -05:00
2016-07-16 13:48:21 -04:00
2017-03-02 15:01:59 -08:00
2017-03-02 15:01:59 -08:00
2017-03-02 15:01:59 -08:00
2017-03-02 15:01:59 -08:00
2017-02-27 09:12:15 -05:00
2017-03-02 14:59:59 -05:00

Multipath

To leverage multiple paths for block storage, it is important to perform the multipath configuration on the host. If your distribution does not provide /etc/multipath.conf, then you can either use the following minimalistic one:

defaults {
    find_multipaths yes
    user_friendly_names yes
}

or create a new one by running:

$ mpathconf --enable

Finally you'll need to ensure to start or reload and enable multipath:

$ systemctl enable multipathd.service
$ systemctl restart multipathd.service

Note: Any change to multipath.conf or enabling multipath can lead to inaccessible block devices, because they'll be claimed by multipath and exposed as a device in /dev/mapper/*.

Some additional informations about multipath can be found in the iSCSI documentation