[Cluster-devel] fence_scsi - Configuration file

Jan Friesse jfriesse at redhat.com
Thu Jul 30 14:08:44 UTC 2009


I was working on fence_scsi configuration file and will be very happy
for opinions of larger audience for syntax/semantic.

Syntax:
Basically it's little improved corosync.conf so example:

# Comment line

# ^^^ white lines ignored

# Definition of device
/dev/sda

# Can be more
/dev/sdb
/dev/sdc

# Configuration section -> everything what doesn't start with /dev/
global {
  key1: value
  key2: value
}

# Device definition + per device configuration
/dev/sdd {
  key1: value
}

### CUT HERE ####

This syntax should give us very flexible background for future
additions. On the other hand, it allows user to overwrite vgs
auto_detection by simple list of device.

Now something about semantic (what is more important).

What I think is good to have is support for hierarchy of options
processed in this way:
1) Hardcoded defaults in fence_scsi - Used in case nobody will say
something different
2) global device options - Used for all devices listed (and maybe auto
detected, will be discussed later)
3) Per device configuration options

So I will try to give example for APTPL flag. This is typical flag,
where we want to be by default enabled or disabled (really don't care
and should be point of discussion) and we want give user ability to
change it and maybe change it for some devices differently. So for
example, user has:
- First array - supports APTPL
/dev/sda
/dev/sdb
- Second array - Doesn't support APTPL
/dev/sdc

and default hardcoded in fence_scsi is to NOT use APTPL:

In my point of view, user can use:

### Cut HERE
global {
  aptpl: on
}

/dev/sda
/dev/sdb
/dev/sdc {
  aptpl: off
}
### CUT HERE

OR

### Cut HERE
/dev/sda {
  aptpl: on
}
/dev/sdb {
  aptpl: on
}
# CUT HERE


Next, in my design is global variable auto_detect. In case, auto_detect
is on, we are using OLD method (vgs scanning) and use per device
options. So another example. Now user has only one array, supporting
APTPL and default is to NOT use APTPL. User DON'T want to enter devices,
so can use:
### CUT HERE
global {
  auto_detect: on
  aptpl: on
}
### CUT HERE

Thats more or less everything about design, any comments highly welcomed.

Regards,
  Honza




More information about the Cluster-devel mailing list