Various administrative trivia

feature/node-rewrite
Sven Slootweg 5 years ago
parent f40ce08148
commit 102ac37020

@ -0,0 +1,37 @@
# CVM
A non-commercial, fully open-source VPS management panel.
## Current status
Definitely not ready for production use yet. Check back later!
## Roadmap
TBD. Initially, only QEMU/KVM will be supported. Support for other virtualization and/or containerization technologies may follow later, if there's enough demand.
## Contributing
Contributions are very welcome! Please keep the following things in mind:
- "Contributions" don't just include code commits, they also include bug reports, translations, documentation fixes, triaging, and so on.
- Anybody is welcome (and encouraged!) to leave code reviews on Pull Requests. You don't need to be a maintainer!
- You agree that any contributions you make, are licensed under both the WTFPL and the CC0 (which more or less means they are public domain). You keep copyright ownership over your work.
- If you're making a Pull Request, make sure that each PR has its own branch in your fork, so that commits between PRs don't get mixed up.
- Because of the security-sensitive nature of CVM, we very tightly control who can directly commit to the repository, even for regular contributors. This is not because we don't trust the quality of your commits, but as an extra layer of security and review.
We welcome contributions from developers of any experience level, *but* we do have a very high code quality standard. Don't worry if you're not sure how to reach that standard; when you submit a PR, we'll help you get there by doing a code review.
This does mean that you should only create a Pull Request if you're willing to work on incrementally improving it before it gets merged! "Hit-and-run" PRs will very likely be closed.
## Code of Conduct
Quite simple, really:
- The goal is for this project to be collaborative, and welcoming to contributors of any demographic and experience level. Arrogance, elitism, etc. are therefore not welcome.
- Don't be an asshole. Treat people respectfully. Assume good faith.
- Constructive criticism is fine, personal attacks are not. Don't just tell somebody that they're doing it wrong, help them understand *why*, and how to do it better.
- No bigoted or discriminatory behaviour or remarks. That includes "jokes".
- Anything related to the alt-right or other hateful ideologies, is banned on sight. If you feel the need to explain how your thing "isn't related", it's probably related.
Bans and other repercussions are at the discretion of maintainers.

@ -504,3 +504,121 @@ http://wiki.qemu.org/download/qemu-doc.html
"name": "quit"
}]
}
-----------------
# Storage pools
- LVM
- Preallocated
- Sparse ("thin provisioning")
- File
- Preallocated (raw)
- Sparse (qcow2)
# Image pools
Make synchronization settable per image pool?
# Network pools?
--------------
Consider how to check disk space (total, used, allocated) and how to display overcommitting to the user
------
Reading filesystems:
/proc/self/mountinfo
https://github.com/coreutils/gnulib/blob/master/lib/mountlist.c
https://github.com/coreutils/coreutils/blob/master/src/df.c
Reading system info in general:
https://github.com/uutils/coreutils (Rust)
------
Schema stuff
Storage pools:
- node ID
- path (for file)
- volume group name (for LVM)
Storage space/volume:
- pool ID
- VM ID
-------
Tools
- resize2fs: resizing filesystems
------
Safety/reliability
- Lock a storage pool when a pvmove is in progress? How to detect that when it isn't done through the CVM interface?
------
MARKER:
- LVM tools abstraction (CLI wrapper)
- Storage pool implementation for LVM and file-based (test LVM via loopback devices)
--------- LVM stuff
To display available report fields:
<command, eg. pvs> -o help
To return data in JSON format:
<command, eg. pvs> --reportformat json
---------
error-chain
- exposed predicate function for "has error type somewhere in chain", for Bluebird .catch
----------
smartctl flags
PO--CK 0x0033 51 0 0 1 1 0 0 1 1
-O--CK 0x0032 50 0 0 1 1 0 0 1 0
----CK 0x0030 48 0 0 1 1 0 0 0 0
POSR-K 0x002f 47 0 0 1 0 1 1 1 1
-OSR-K 0x002e 46 0 0 1 0 1 1 1 0
POS--K 0x0027 39 0 0 1 0 0 1 1 1
-O---K 0x0022 34 0 0 1 0 0 0 1 0
---R-- 0x0008 8 0 0 0 0 1 0 0 0
K C R S O P
| | | | | |_ P prefailure warning
| | | | |__ O updated online
| | | |___ S speed/performance
| | |____ R error rate
| |_____ C event count
|______ K auto-keep
------
FIXME: Do a self-test after installation, to verify that all the parsing code works on the user's system (wrt possibly different versions of tools), and write an UnexpectedOutput/ExpectedOutputMissing handler that lets the user report any failures.
------
Security stuff:
- CSRF?
- Helmet?
- Zeroing volumes after/before use
------
# Stuff to add
Hardware -> Storage Devices
- Disk space used
- Disk space allocated (can be over 100% with thin provisioning!)
- Allocation:usage ratio
- IOPS
- Read/Write traffic
- Read/Write latency

10207
yarn.lock

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save