-
Notifications
You must be signed in to change notification settings - Fork 222
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
Solidfire - Add a new storage class (QOS profile) to running backend #29
Comments
Trident allows updating a backend's storage pools subject to some conditions. More specifically, the storage pools in the updated backend should be a superset of storage pools in the old backend so that all storage classes and volumes mapped to the old backend's storage pools are still supported by the updated backend's storage pools. Your example satisfies this requirement. I tried your updated definition on a SolidFire backend and it worked fine for me. |
thanks for your reply, This is the output |
Thanks for the additional information. I suspect that you have at least a volume that points to a deleted storage class. Please run the following command for the 9 volumes in your environment: |
thanks for the reply, so we have the following storage classes: but we have a orphan class "netapp-trident" where most of the volumes are from. This class refers to old trident deployment, the backend has been removed but not yet the volumes. I guess or we need to wait to decomm those volumes or there is another way? |
A deleted storage class explains why you're experiencing this problem. You can't really "delete" a backend while it has volumes associated with it, but you can certainly update the backend, which I think is what you have done. Having said that, the problem is not so much the deleted backend but rather the deleted storage class. I'll work on a patch that wouldn't require you to decommission the volumes before you can update the backend definition. |
ok thanks |
@labazza v17.07.0-beta.1 includes the fix. |
thanks |
i tried to modify:
{
"version": 1,
"storageDriverName": "solidfire-san",
"Endpoint": "https://user_trid:uuuuuu@address.com/json-rpc/7.0",
"SVIP": "10.10.10.10:3260",
"TenantName": "trident",
"InitiatorIFace": "default",
"Types": [{"Type": "Bronze", "Qos": {"minIOPS": 1000, "maxIOPS": 2000, "burstIOPS": 4000}},
{"Type": "Silver", "Qos": {"minIOPS": 4000, "maxIOPS": 6000, "burstIOPS": 8000}},
{"Type": "Gold", "Qos": {"minIOPS": 6000, "maxIOPS": 8000, "burstIOPS": 10000}}]
}
into:
{
"version": 1,
"storageDriverName": "solidfire-san",
"Endpoint": "https://user_trid:uuuuuu@address.com/json-rpc/7.0",
"SVIP": "10.10.10.10:3260",
"TenantName": "trident",
"InitiatorIFace": "default",
"Types": [{"Type": "Bronze", "Qos": {"minIOPS": 1000, "maxIOPS": 2000, "burstIOPS": 4000}},
{"Type": "Silver", "Qos": {"minIOPS": 4000, "maxIOPS": 6000, "burstIOPS": 8000}},
{"Type": "Gold", "Qos": {"minIOPS": 6000, "maxIOPS": 8000, "burstIOPS": 10000}},
{"Type": "Platinum", "Qos": {"minIOPS": 8000, "maxIOPS": 16000, "burstIOPS": 20000}}]
}
in order to have Platinum storage class available with the following command:
oc exec -i trident-12345678-xkm6x -- post.sh backend < trident-bk-iscsi-prod.txt
But it does not work and trident logs:
time="2017-06-01T12:50:08Z" level=info msg="Added a new backend." backend= handler=AddBackend
2017/06/01 12:50:08 http: panic serving [::1]:43536: runtime error: invalid memory address or nil pointer dereference
goroutine 776970 [running]:
.....
Adding a storage class works however for specific solidfire case it seems to be necessary tomodify the back-end too.
The text was updated successfully, but these errors were encountered: