78 lines
2.9 KiB
Markdown
78 lines
2.9 KiB
Markdown
# Info of docklet
|
|
|
|
## container info
|
|
container name : username-clusterid-nodeid
|
|
hostname : host-nodeid
|
|
lxc config : /var/lib/lxc/username-clusterid-nodeid/config
|
|
lxc rootfs : /var/lib/lxc/username-clusterid-nodeid/rootfs
|
|
lxc rootfs
|
|
|__ / : aufs : basefs + volume/username-clusterid-nodeid
|
|
|__ /nfs : global/users/username/data
|
|
|__ /etc/hosts : global/users/username/clusters/clusterid/hosts
|
|
|__ /root/.ssh : global/users/username/ssh
|
|
|
|
|
|
## ETCD Table
|
|
we use etcd for some configuration information of our clusters, here is some details.
|
|
|
|
every cluster has a CLUSTER_NAME and all data of this cluster is put in a directory called CLUSTER_NAME in etcd just like a table.
|
|
|
|
so, different cluster should has different CLUSTER_NAME.
|
|
|
|
below is content of cluster info in CLUSTER_NAME 'table' in etcd:
|
|
|
|
<type> <name> <content> <description>
|
|
key token random code token for checking whether master and workers has the same global filesystem
|
|
|
|
dir machines ... info of physical clusters
|
|
dir machines/allnodes ip:ok record all nodes, for recovery and checks
|
|
dir machines/runnodes ip: ? record running node for this start up.
|
|
when startup: ETCD
|
|
| IP:waiting | 1. worker write worker-ip:waiting
|
|
2. master update IP:init-mode | IP:init-mode | 3. worker init itself by init-mode
|
|
| IP:work | 4. worker finish init and update IP:work
|
|
5. master add workerip and update IP:ok | IP:ok |
|
|
|
|
key service/master master-ip
|
|
key service/mode new,recovery start mode of cluster
|
|
|
|
key vcluster/nextid ID next available ID
|
|
|
|
|
|
|
|
## filesystem
|
|
here is the path and content description of docklet filesystem
|
|
|
|
FS_PREFIX
|
|
|__ global/users/{username}
|
|
| |__ clusters/clustername : clusterid, cluster size, status, containers, ... in json format
|
|
| |__ hosts/id.hosts : ip host-nodeid host-nodeid.clustername
|
|
| |__ data : direcroty in distributed filesystem for user to put his data
|
|
| |__ ssh : ssh keys
|
|
|
|
|
|__ local
|
|
|__ docklet-storage : loop file for lvm
|
|
|__ basefs : base image
|
|
|__ volume / { username-clusterid-nodeid } : upper layer of container
|
|
|
|
|
|
|
|
## vcluster files
|
|
|
|
### hosts file:(raw)
|
|
IP-0 host-0 host-0.clustername
|
|
IP-1 host-1 host-1.clustername
|
|
...
|
|
|
|
### info file:(json)
|
|
{
|
|
clusterid: ID ,
|
|
status: stopped/running ,
|
|
size: size ,
|
|
containers: [
|
|
{ containername: lxc_name, hostname: hostname, ip: lxc_ip, host: host_ip },
|
|
{ containername: lxc_name, hostname: hostname, ip: lxc_ip, host: host_ip },
|
|
...
|
|
]
|
|
}
|