Comments (6)
Debug logs:
[2023-12-15 17:30:38,414] DEBUG [controllerserver - 100:CreateVolume] - Create Volume request request=name: "pvc-f3a76282-c6e0-42ab-8009-07985e51ed82"
capacity_range {
required_bytes: 21474836480
}
volume_capabilities {
mount {
}
access_mode {
mode: MULTI_NODE_MULTI_WRITER
}
}
parameters {
key: "gluster_hosts"
value: "cluster-node1"
}
parameters {
key: "gluster_volname"
value: "read-cache"
}
parameters {
key: "hostvol_type"
value: "External"
}
parameters {
key: "single_pv_per_pool"
value: "False"
}
[2023-12-15 17:30:38,420] DEBUG [volumeutils - 1175:mount_glusterfs] - Already mounted mount=/mnt/kadalu-read-cache
[2023-12-15 17:30:38,435] DEBUG [volumeutils - 1175:mount_glusterfs] - Already mounted mount=/mnt/kadalu-write-cache
[2023-12-15 17:30:38,441] DEBUG [controllerserver - 161:CreateVolume] - Found PV type pvtype=subvol capabilities=[mount {
}
access_mode {
mode: MULTI_NODE_MULTI_WRITER
}
]
[2023-12-15 17:30:38,441] DEBUG [controllerserver - 174:CreateVolume] - Filters applied to choose storage hostvol_type=External gluster_hosts=cluster-node1 single_pv_per_pool=False gluster_volname=read-cache
[2023-12-15 17:30:38,442] DEBUG [controllerserver - 185:CreateVolume] - Got list of hosting Volumes volumes=kadalu-read-cache,kadalu-write-cache
[2023-12-15 17:30:38,447] DEBUG [volumeutils - 1175:mount_glusterfs] - Already mounted mount=/mnt/kadalu-read-cache
[2023-12-15 17:30:38,448] DEBUG [volumeutils - 1406:check_external_volume] - Mount successful hvol={'name': 'kadalu-read-cache', 'type': 'External', 'g_volname': 'read-cache', 'g_host': 'cluster-node1', 'g_options': '', 'single_pv_per_pool': False}
[2023-12-15 17:30:38,530] DEBUG [volumeutils - 443:is_hosting_volume_free] - pv stats hostvol=kadalu-read-cache total_size_bytes=31509606400 used_size_bytes=24696061952 free_size_bytes=6813544448 number_of_pvs=1 required_size=21474836480 reserved_size=681354444.8
[2023-12-15 17:30:38,530] ERROR [controllerserver - 262:CreateVolume] - Hosting volume is full. Add more storage volume=kadalu-read-cache
from kadalu.
Same issue is present in Kadalu 1.2.0
Issue is not present in Kadalu 0.8.14, though in this release command kubectl-kadalu storage-list --status
doesn't work
# kubectl exec -it deploy/operator -n kadalu -- bash -c 'kubectl-kadalu storage-list --status' Traceback (most recent call last): File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code exec(code, run_globals) File "/usr/bin/kubectl-kadalu/__main__.py", line 117, in <module> File "/usr/bin/kubectl-kadalu/__main__.py", line 108, in main File "/usr/bin/kubectl-kadalu/storage_list.py", line 237, in run File "/usr/bin/kubectl-kadalu/storage_list.py", line 197, in fetch_status IndexError: list index out of range
from kadalu.
If the logic in "expansion" should be the same as in "create" then the update_free_size() should't be called for PV_TYPE_SUBVOL even during "expansion", while currently for PV_TYPE_SUBVOL it's not called in "created" and called in "expansion"
from kadalu.
Is it possible to send the PR if the fixes in update_free_size()
works?
from kadalu.
Before doing a PR I guess we have to establish whether Kadalu support over-provisioning for External native mode or not.
That's not clear to me cause the code doesn't call update_free_size() during PVC create (so you can create as many PVC as you want, even over the space available in the external gluster volume). However, when a PVC is expanded the update_free_size() is called to update the space available in the external gluster volume.
If we support over-provisioning we should never verify the space available in the gluster volume before creating or expanding a PVC.
If we don't support over-provisioning then we should call update_free_size() both during creation and during expansion.
from kadalu.
If we don't support over-provisioning then we should call update_free_size() both during creation and during expansion.
- as commented in the PR, I believe this should be fix, i.e, don't support over-provision
from kadalu.
Related Issues (20)
- [Bug]: Failed to pull image "docker.io/library/busybox" HOT 8
- [Bug]: Failed to mount device - not a block device HOT 6
- [Bug]: kadalu-operator can't response prometheus metrics from `/metrics`, except `/metrics.json` HOT 2
- [Bug]: Storage not created HOT 2
- [Bug]: Kadalu upgrading not working properly and PV data not correct HOT 2
- [Bug]: kadalu-operator.storage missing, how to add performance options HOT 8
- 3 node cluster - Arbiter volume still becomes unavailable temporarly when one node is rebooted HOT 3
- [RFE]: Can't create a volume via the kadalu cli not using kubernetes HOT 3
- [Bug]: HOT 1
- kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name kadalu not found in the list of registered CSI drivers HOT 3
- [Bug]: Error "Failed to open socket connection" while binding PVC HOT 4
- [Bug]: CSI: Sending SIGHUP to main.py only works once
- [Bug]: restart kadalu-csi-nodeplugin daemonset would make current gfs mount unavailable. HOT 2
- [Bug]: Frequent exceptions in Operator: "Expired: too old resource version: 1058643076 (1578740144)"
- [Bug]: Exception in Operator when name of added KadaluStorage starts with name of existing KadaluStorage HOT 2
- [RFE]: Mounting multiple GlusterFS volumes fails if referencing one or more missing volumes on the server. HOT 2
- [Bug]: ResourceExhausted desc = No Hosting Volumes available, add more storage HOT 1
- [Bug]: Double mounts after kublet restart
- [Bug]: ResourceExhausted desc = No Hosting Volumes available, add more storage
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kadalu.