Dysk Planning
Opened this issue · 8 comments
Use this issue to track beta/stable functions + features.
BETA Goals
- Stable worker, specifically how it yields the CPU
- Fix issue #1 Specifically memory + allocation optimization
- Fix issue #7
- Fix issue #8
- Create easy to use samples
- Create easy to use verification scripts
-
return -EBUSY upon module unload when dysk has disks mountedKernel 4.10 does not count references correctly, hence users shouldn't be unload dysk module - Create Releases (a container for CLI + consistent release experience for the module)
- Full e2e integration with Kubernetes
- Flex vol driver
- Support for rw mounting (with
auto-lease
and--break-lease
flag) - Support for ro mounting (with lease management across multiple nodes)
- Support for rw mounting (with
- Flex vol driver installer as daemon set (including kernel module installer + cli)
- Cli support for converting dysk to K8S PV example
dyskcli convert-pv --labels [dictionary] --secret-ref
The command converts stdin output of dyskctl get -o json or cat ./dysk.json or dyskctl
create .. then creates k8s PV object which user can then usekubectl create
to
provision on k8s. Users should not suffer through manual conversion. Example
- Flex vol driver
dyskctl create ... -o json | dyskctl convert-pv --name my-name --secret-ref my-secret --labels [dictonary] ##optionally --readonly --fstype "ext4## | kubectl create ...
##output piped to kubectl create stdin is:
apiVersion: v1
kind: PersistentVolume
metadata:
name: **my-name**
lables:
**value of --labels dictionary**
spec:
flexVolume:
driver: "dysk/dysk"
fsType: **value of --fstype***
readOnly: **if --read-only was passed to convert-pv**
secretRef:
name: **my-secret**
options:
accountName: "{Account-Name-Here-FROM-DYSK}"
pageBlobPath: "{PAGE BLOB PATH- FROM - DYSK}"
- Samples
- (STRETCH) Support for cache using dm-cache
Stable Goals - Move to Azure Storage SAS for authentication.
- Flexvol support for raid configuration (multi dysks) via LVM
@khenidak Have you ever run https://github.com/khenidak/dysk/blob/master/kubernetes/dysk
as a flexvolume driver, there are lots of bugs, it even cannot be loaded. And pls note that bash env in kubelet image is different than your dev env, there are some bash syntax not supported in kubelet bash.
hmm Ok i will go back and check. in all cases thank you for putting it back on track.
@khenidak, I have a PR to fix it all.
the commit on head was not the latest code i had :-( Thanks again
that's bad, you need to merge... Pls add me as reviewer if you want to change flex vol driver.
I am quite familiar with flex vol driver development, you may propose design and requirement, I could do the development.
No need to, you have put back everything back on track (basically took care of a mess i created :-)) thanks again.
I'm wondering if dysk is the solution to all my Azure Disk problems with Kubernetes on Azure (wishful thinking I know). As far as I can tell from this issue, almost everything in the checklist above, except raid+lvm config that is a blocker for beta is done -- is raid+lvm really a blocker for beta? Can this be moved forward? I've seen no commits in these repo for two months.
@rocketraman Your issue should be related to this bug: https://github.com/andyzhangx/demo/blob/master/issues/azuredisk-issues.md#14-azure-disk-attachdetach-failure-mount-issue-io-error, it's due to the dirty vm cache which would lead to lots of strange disk attach/detach issues. The fix has been verified in more than 150 k8s clusters by one customer, no disk attach/detach issue any more. I would encouge you to use 1.11.6
, 1.12.4
or 1.13.0
when these versions come out.