A new CLI command called host-fs has been introduced to enable resizing of filesystems on a specific host. Changes were also made to the controllerfs API.

 

https://bugs.launchpad.net/starlingx/+bug/1830142

 

 

Previously

Previously we allowed resizing of our filesystems through the controllerfs API, which only applied to controller hosts. The controllerfs API modified the following filesystems;

- drbd replicated

                database

                docker-distribution

                etcd

                extension

                glance

 

- non replicated

                backup

                docker

                scratch

 

 

New host-fs API

A new host-fs API has been created to allow a filesystem to be resized on any specific host. The non drbd filesystems from controllerfs (backup, docker and scratch) have been moved to the new host-fs API. Also a new filesystem called "kublet" has been created on all hosts with a default size of 10G.

 

The new API has the following CLI commands

system host-fs-list <hostname or id>

system host-fs-modify <hostname or id> <fs_name=size> [<fs_name=size> ...]

system host-host-show <hostname or id> <fs name or uuid> 

 

 

system host-fs-list controller-1

+--------------------------------------+---------+-------------+----------------+

| UUID                                 | FS Name | Size in GiB | Logical Volume |

+--------------------------------------+---------+-------------+----------------+

| a4d83571-a555-4ba5-999f-af709206ae35 | backup  | 40          | backup-lv      |

| d57652a1-af17-47b8-b941-9ebfeee4a56f | docker  | 30          | docker-lv      |

| a84374c6-8917-4db5-bd34-2a8d244f2bf6 | kubelet | 10          | kubelet-lv     |

| 2c026d6f-5c03-4135-abca-c0047aa7f5a6 | scratch | 8           | scratch-lv     |

+--------------------------------------+---------+-------------+----------------+

 

system host-fs-list compute-1

+--------------------------------------+---------+-------------+----------------+

| UUID                                 | FS Name | Size in GiB | Logical Volume |

+--------------------------------------+---------+-------------+----------------+

| 32e8b0b2-8a26-4c87-ae2e-71477b276740 | docker  | 30          | docker-lv      |

| 223671f7-aed0-4c6e-b1d2-1327aae74439 | kubelet | 10          | kubelet-lv     |

| 36b96d05-febb-411b-a290-abdc5a2be0ff | scratch | 4           | scratch-lv     |

+--------------------------------------+---------+-------------+----------------+

 

system host-fs-show controller-1 a4d83571-a555-4ba5-999f-af709206ae35

+----------------+--------------------------------------+

| Property       | Value                                |

+----------------+--------------------------------------+

| uuid           | a4d83571-a555-4ba5-999f-af709206ae35 |

| name           | backup                               |

| size           | 40                                   |

| logical_volume | backup-lv                            |

| created_at     | 2019-08-08T03:05:25.341669+00:00     |

| updated_at     | None                                 |

+----------------+--------------------------------------+

 

system host-fs-modify controller-1 docker=31 kubelet=11

+--------------------------------------+---------+-------------+----------------+

| UUID                                 | FS Name | Size in GiB | Logical Volume |

+--------------------------------------+---------+-------------+----------------+

| a4d83571-a555-4ba5-999f-af709206ae35 | backup  | 40          | backup-lv      |

| d57652a1-af17-47b8-b941-9ebfeee4a56f | docker  | 31          | docker-lv      |

| a84374c6-8917-4db5-bd34-2a8d244f2bf6 | kubelet | 11          | kubelet-lv     |

| 2c026d6f-5c03-4135-abca-c0047aa7f5a6 | scratch | 8           | scratch-lv     |

+--------------------------------------+---------+-------------+----------------+

 

 

Filesystem          Supported Hosts              Folder                                  Logical Volume                 Default Size      

backup                 controller                             /opt/backups                    backup-lv                             40G

scratch                  all hosts                               /scratch                                scratch-lv                             varies depending on system, configured in kickstart

docker                  all hosts                               /var/lib/docker                  docker-lv                             30G (new fs to worker and storage hosts)

kublet                   all hosts                               /var/lib/kublet                   kublet-lv                              10G (new fs to all hosts)

 

 

Changes to controllerfs API

The existing “platform” filesystem is now resizable and added to controllerfs. The “glance” filesystem is now merged into platform. Below are the new filesystems resizable by controllerfs. The backup, docker and scratch filesystems are now resizable under host-fs.

 

Filesystem                          Folder                                                   Logical Volume                 Default Size      

database                             /var/lib/postgresql                          pgsql-lv                                 40G

docker-distribution         /var/lib/docker-distribution        dockerdistribution-lv      16G

etcd                                       /opt/etcd                                            etcd-lv                                  5G

extension                            /opt/extension                                extension-lv                       1G

glance                                   /opt/cgcs                                            cgcs-lv                                   20g (removed and merged with platform)

platform                              /opt/platform                                   platform-lv                          10G

backup                                 /opt/backups                                    backup-lv                            managed by host-fs

scratch                                 /scratch                                                scratch-lv                             managed by host-fs

docker                                 /var/lib/docker                                  docker-lv                             managed by host-fs

 

 

Thanks,

Kristine