Discussion:
[node-devel] Node Design ideas - And what you would like to see in or how you would like to see Node
Fabian Deutsch
2014-04-24 14:57:07 UTC
Permalink
Hey,

lately - well for some time now - I noticed how often I asked myself why
we had this or that bug, or why it was so hard to implement some
features.

For example. Getting iSCSI and EFI right in our installer is still
"fragile". Because it's hard to get right.
Or enabling and disabling services easily with standard tools at runtime
on our Fedora based images is not possible, because it's not easily
implementable with bind mounts (well, cumbersome).
Or enable "live plugins" - plugins which can be installed at runtime.
They are also difficult because of our use of bind mounts.

Because of this I thought about how we could - from the ground up -
change some designs to leverage more existing code (and have less code
to maintain) and make some feature development easier.

The two areas I looked at are already mentioned. It's the (a) installer
- which is complex because of all the storage enumeration [0], EFI,
iSCSI and it's age - and (b) how we work with the read-only rootfs - aka
the LiveCD based design.

For (a) I looked into Fedora's anaconda [1]. It has support for EFI,
iSCSI and so one. Even high-level features to configure networking or
add users (for which we also maintain some code).

And for (b) I thought about a design based around LVM and thin volumes
[2][3].

But changing parts of Node might result in Node having different
properties.
For example - Using the LVM based approach above would increase the size
of the runtime rootfs to ~1GB. OTOH it would allow an arbitrary number
of "layers" (for e.g. live plugins).

And thus - before I start to think (only to think) about bigger changes
in Node - I would like to know what properties of Node _you_ like, and
which you would like to keep.

Some ideas about what you could like or not:
- installation size (~250MB)?
- runtime size (~250MB)?
- way of installation (kargs)?
- TUI (simple instaler, setup)?
- "firmware-like" feeling (read-only rootfs)?
- ...

And also - what changes you would like to see which ain't there yet!

Greetings
fabian

--
[0]
http://gerrit.ovirt.org/gitweb?p=ovirt-node.git;a=blob;f=src/ovirtnode/storage.py
[1] https://github.com/fabiand/imgbased/
[2] https://git.fedorahosted.org/cgit/anaconda.git/
[3]
http://dummdida.tumblr.com/post/82392428141/imgbased-or-keeping-the-nature-of-node
Doron Fediuck
2014-04-25 07:53:58 UTC
Permalink
Sharing with ovirt devel list to get additional awareness.

----- Original Message -----
From: "Fabian Deutsch" <***@redhat.com>
To: "node-devel" <node-***@ovirt.org>
Sent: Thursday, April 24, 2014 5:57:07 PM
Subject: [node-devel] Node Design ideas - And what you would like to see in or how you would like to see Node

Hey,

lately - well for some time now - I noticed how often I asked myself why
we had this or that bug, or why it was so hard to implement some
features.

For example. Getting iSCSI and EFI right in our installer is still
"fragile". Because it's hard to get right.
Or enabling and disabling services easily with standard tools at runtime
on our Fedora based images is not possible, because it's not easily
implementable with bind mounts (well, cumbersome).
Or enable "live plugins" - plugins which can be installed at runtime.
They are also difficult because of our use of bind mounts.

Because of this I thought about how we could - from the ground up -
change some designs to leverage more existing code (and have less code
to maintain) and make some feature development easier.

The two areas I looked at are already mentioned. It's the (a) installer
- which is complex because of all the storage enumeration [0], EFI,
iSCSI and it's age - and (b) how we work with the read-only rootfs - aka
the LiveCD based design.

For (a) I looked into Fedora's anaconda [1]. It has support for EFI,
iSCSI and so one. Even high-level features to configure networking or
add users (for which we also maintain some code).

And for (b) I thought about a design based around LVM and thin volumes
[2][3].

But changing parts of Node might result in Node having different
properties.
For example - Using the LVM based approach above would increase the size
of the runtime rootfs to ~1GB. OTOH it would allow an arbitrary number
of "layers" (for e.g. live plugins).

And thus - before I start to think (only to think) about bigger changes
in Node - I would like to know what properties of Node _you_ like, and
which you would like to keep.

Some ideas about what you could like or not:
- installation size (~250MB)?
- runtime size (~250MB)?
- way of installation (kargs)?
- TUI (simple instaler, setup)?
- "firmware-like" feeling (read-only rootfs)?
- ...

And also - what changes you would like to see which ain't there yet!

Greetings
fabian

--
[0]
http://gerrit.ovirt.org/gitweb?p=ovirt-node.git;a=blob;f=src/ovirtnode/storage.py
[1] https://github.com/fabiand/imgbased/
[2] https://git.fedorahosted.org/cgit/anaconda.git/
[3]
http://dummdida.tumblr.com/post/82392428141/imgbased-or-keeping-the-nature-of-node
Fabian Deutsch
2014-05-12 20:25:02 UTC
Permalink
Post by Fabian Deutsch
Hey,
lately - well for some time now - I noticed how often I asked myself why
we had this or that bug, or why it was so hard to implement some
features.
Hey,

while trying to get an overview over how the implementation of the
functionalities that make up Node affect several aspects of Node, I
first had to answer the question what functionalities and aspects Node
has. The following list is not complete, but a start, feel free to
extend it:
http://www.ovirt.org/Node/Specs

Further more I've also started to summarize some effects of different
implementations on high-level features of Node:
http://www.ovirt.org/Node/Specs#Comparison:_Possible_Implementations

Basically: What do we gain and what do we loose when we use a specific
implementation or approach.

Greetings
fabian

Continue reading on narkive:
Loading...