« Return to Thread: Beta for online database storage ready (RFC)

Beta for online database storage ready (RFC)

by Jeff Waller :: Rate this Message:

Reply to Author | View in Thread

See "Online target database?" thread for info.  Following up from that thread, I've
made the following changes, and require some feedback (see below).

==========================================================
1) Updated ietadm and the ietd<--->ietadm protocol to allow a --sync option.  If present,
this will cause ietd to first perform the changes specified by the other operator
present on the command line for ietadm, and then after those changes are complete
will write our a new configuration file named basename.x where:

basename is the name of the configuration file ietd was invoked with (e.g. /etc/ietd.conf).
x is a number extending the filename.

So if ietd was started with /etc/ietd.conf, the new configuration file would be named
/etc/ietd.conf.1.

Added support in the daemon to fetch all the parameters necessary for reconstructing
the configuration file:
        targets
        target parameters
        users
        luns
        isns server information

2)  Modified ietd to prefer using a configuration file with the highest value extension
number (see above) for obtaining its startup information when it first starts.  So
for example if there are files /etc/ietd.conf /etc/ietd/conf.1 /etc/ietd/conf.2,  ietd
will use /etc/ietd.conf.2.  The idea being that if a new file is written out due to the
scheme in 1) -- in this case /etc/ietd.conf.3 -- those changes will be used
when ietd is restarted.
==========================================================
Testing:

Unit testing was pretty straightforward.  Visually inspected and verified all parameters
were transferred to the new config file, used ietd afterwards -- couple hundered megabytes,
seems stable.  Kind of meager still though.
==========================================================
Notes:

1)  defining OfMarkInt in the configuration file will cause ietd instability, therefore,
this parameter is written but commented.

2)  this scheme could to lead to a large number of files in /etc/.  Suggest that we
should instead use a directory /etc/ietd/ietd.conf as the default.

3)  Need some help with merging in the changes if they are adopted -- first time-er here.

4)  Mods were made against .4.16 + Arne Redlich's chap patch, not trunk (see #3),
so some additional changes need to be done, I'm sure.

5) Currenty the following previously hidden (statically defined in plain.c) information
is now exposed.

struct user
struct qelem *account_list_get(u32 tid, int dir);

Further, I'm lobbying right now for following target.c's example, and pull it all of out plain.c
and create a new file user.c.  I BTW did this with LUNs and made lun.c  Currently, it's
all still in plain.c
==========================================================


Well that's pretty good for an intro... comments?

-Jeff

 « Return to Thread: Beta for online database storage ready (RFC)

LightInTheBox - Buy quality products at wholesale price!