-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
proposal: Expand the PVC's initial capacity based on the largest capacity in specified PVCs. #174
Conversation
872b1b0
to
29a2339
Compare
|
||
Rules for grouping & initial sizing | ||
|
||
- If creating a PVC has a `resize.topolvm.io/pre-resize-group-by` annotation and the label specified in the annotation exists, existing PVCs with matching values are determined to be in the same group. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMHO, the name resize.topolvm.io/pre-resize-group-by
is ambiguous because it is not clear what pre refers to.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peng225 @daichimukai @satoru-takeuchi
How about resize.topolvm.io/init-resize-group-by
or resize.topolvm.io/initial-resize-group-by
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I prefer resize.topolvm.io/initial-resize-group-by
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with @peng225 and @daichimukai
|
||
Rules for grouping & initial sizing | ||
|
||
- If creating a PVC has a `resize.topolvm.io/pre-resize-group-by` annotation and the label specified in the annotation exists, existing PVCs with matching values are determined to be in the same group. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I prefer resize.topolvm.io/initial-resize-group-by
.
ed4dd6a
to
8474139
Compare
Signed-off-by: Yuji Ito <[email protected]> Co-authored-by: Shinya Hayashi <[email protected]>
9dc212f
to
539ece4
Compare
One use case for pvc-autoresizer is automatically expanding a PV/PVC for multiple Pod/PV pairs, such as a MySQL cluster. | ||
In such a cluster, if a Pod/PV fails and a PV/PVC is rebuilt by the restore process, a PV is created based on the PVC template. Even if a PV of the same size as the others is actually needed, a PV of the template's capacity is created. As a result, the restore process stops due to insufficient capacity. | ||
|
||
To solve this problem, we are planning to add a new feature to create a PV/PVC with sufficient capacity when PVCs of the same group already exist. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One use case for pvc-autoresizer is automatically expanding a PV/PVC for multiple Pod/PV pairs, such as a MySQL cluster. | |
In such a cluster, if a Pod/PV fails and a PV/PVC is rebuilt by the restore process, a PV is created based on the PVC template. Even if a PV of the same size as the others is actually needed, a PV of the template's capacity is created. As a result, the restore process stops due to insufficient capacity. | |
To solve this problem, we are planning to add a new feature to create a PV/PVC with sufficient capacity when PVCs of the same group already exist. | |
Sometimes we needs to resize multiple PVCs at once. It typicall happens in StatefulSet. Here is the examples in MySQL clusters created by [moco](https://github.com/cybozu-go/moco). | |
1. Moco creates a StatefulSet to manage a MySQL cluster. In addition, a PVC is consumed per one instance(pod). Let assume the initial volume size, which is written in VolumeClaimTemplate, is 100GiB. | |
2. These PVCs has expanded to 200GiB according to the growth of DB. | |
3. One instance dies. Then a new pod and the corresponding instance is created to fill a vacancy. | |
4. The new PVC, which is consumed by the new instance is created. In this case, the size of the new PVC is not 200GiB, but 100GiB. | |
5. The data clone to the existing instances to the new instance might fail due to the lack of volume size. | |
This proposal is to resolve the above-mentioend problem. |
2fbeaf0
Signed-off-by: Yuji Ito <[email protected]> Co-authored-by: Satoru Takeuchi <[email protected]>
2fbeaf0
to
c285a1b
Compare
Signed-off-by: Yuji Ito [email protected]