-
Notifications
You must be signed in to change notification settings - Fork 59
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
Handle the rbd image not found error #204
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Kevin Zhao <[email protected]>
Please help to review @dillaman @mikechristie |
.format(disk_key, | ||
target.error_msg)) | ||
except rbd.ImageNotFound: | ||
logger.debug("Rbd image not found: '{}' ".format(image_name)) | ||
|
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 don't know the answer to this, maybe someone more experienced with ceph-iscsi and rbd. From what it looks like. It's grabbing the list of disks from the ceph-iscsi config, and then opening up the pool and searching for the key/object (disk) in ceph. So the question is what is the expected behaviour if the image in the pool is gone?
Do we just log to debug? that seems like it's easily missed, or do be need to do something more noticeable for ops?
I'd assume we'd either have to use:
logger.warning
So it appears in more logs... and might even be colour coded depending on the log analyser.
Or maybe it should throw a CephISCSIError, but I assume that'll stop processing and not actually fix things, minus stop a full blown stacktrace.
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.
The original intention was to fail the service so that it could easily be seen that somehow the configuration is invalid and needs to be resolved. Just hiding it like this will still potentially leave dangling LUNs in the configuration. In this case, the easy "solution" is to just recreate the missing images and remove them from Ceph iSCSI first.
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.
@matthewoliver @dillaman Thanks for clarifying.
Cloud you point me how to recreate missing images when the rbd-target-api is failed?
do you mean that we need to use cephcli to create a rbd image as the ceph-iscsi service is dead.
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.
Yeah, just use rbd create --size 1G (??) --image-format exclusive-lock volumes/<image name>
Fix #203
When restart rbd-target-api, this service will be blocked by rbdNotFound error. Need to skip it.
All the bug info are listed at issue #203