mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Extended Volume Manager API
@ 2006-05-01  5:26 Circuitsoft Development
  2006-05-01  7:02 ` Valdis.Kletnieks
  0 siblings, 1 reply; 7+ messages in thread
From: Circuitsoft Development @ 2006-05-01  5:26 UTC (permalink / raw)
  To: Linux Kernel Mailing List

Question:

How hard would it be to implement a volume manager with an extended
API? I want to write a tightly-integrated volume manager/distributed
lock manager to arbitrate lock-free, atmoic read/compare/write
operations with other computers on the network. Also, I have a need to
have this API available to user-space applications. How would I do
this?

Details follow, if you're curious.

The idea is to make a distributed filesystem that won't hiccup when a
client node crashes. I've decided to implement all the gritty work in
the volume manager, and just design the filesystem to take advantage
of it.

Having done my own tests, I've determined that a 5msec timeout to
determine if a host has crashed would be appropriate. (My test was
basically looking at ping time over a saturated network - averaged
about 600 microseconds, topped at 3msec over 10 minutes) I figure that
5msec timeout won't add any noticeable lag to the volume manager, as
most disk seek times are in that range.

Anyway, we basically have the volume manager asking around for
everyone else on the network, to see if they have a particular area
locked. If so, wait for it to be unlocked. If not, record and
broadcast the lock, then do the atomic read/compare/write operation
while locked, and unlock before we return to the client (filesystem).

I need the API to this code to be available to userspace due to an
application that I cannot mention because of an informal NDA.

Thank you,
- Alex Austin, Circuitsoft Computer Services
"From Windows to MacOS, and the Linux in between"

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Extended Volume Manager API
  2006-05-01  5:26 Extended Volume Manager API Circuitsoft Development
@ 2006-05-01  7:02 ` Valdis.Kletnieks
       [not found]   ` <64b292120605010759h4d9c74d7s717d125018ab95d3@mail.gmail.com>
  0 siblings, 1 reply; 7+ messages in thread
From: Valdis.Kletnieks @ 2006-05-01  7:02 UTC (permalink / raw)
  To: Circuitsoft Development; +Cc: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 987 bytes --]

On Mon, 01 May 2006 00:26:05 CDT, Circuitsoft Development said:

> Having done my own tests, I've determined that a 5msec timeout to
> determine if a host has crashed would be appropriate. (My test was
> basically looking at ping time over a saturated network - averaged
> about 600 microseconds, topped at 3msec over 10 minutes) I figure that
> 5msec timeout won't add any noticeable lag to the volume manager, as
> most disk seek times are in that range.W

Note that if you're setting 5ms as your timeout for detecting a *crash*,
and your *ping* takes 3ms, that leaves you a whole whopping 2ms.  If you
have 1ms scheduler latency at *each* end (remember - you're in userspace
at both ends, right?) you have approximately 0ms left for the remote end to
actually *do* anything, and for the local end to process the reply.

And if the remote end has to issue a syscall during processing the request,
you're basically screwed.

You need to be adding at least 1 zero to that timeout value.

[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Fwd: Extended Volume Manager API
       [not found]   ` <64b292120605010759h4d9c74d7s717d125018ab95d3@mail.gmail.com>
@ 2006-05-01 20:10     ` Circuitsoft Development
  2006-05-02 12:42       ` Rik van Riel
  0 siblings, 1 reply; 7+ messages in thread
From: Circuitsoft Development @ 2006-05-01 20:10 UTC (permalink / raw)
  Cc: Linux Kernel Mailing List

On 5/1/06, Valdis.Kletnieks@vt.edu <Valdis.Kletnieks@vt.edu> wrote:
> On Mon, 01 May 2006 00:26:05 CDT, Circuitsoft Development said:
> > about 600 microseconds, topped at 3msec over 10 minutes) I figure that
> > 5msec timeout won't add any noticeable lag to the volume manager, as
> > most disk seek times are in that range.
>
> Note that if you're setting 5ms as your timeout for detecting a *crash*,
> and your *ping* takes 3ms, that leaves you a whole whopping 2ms.  If you
> have 1ms scheduler latency at *each* end (remember - you're in userspace

Volume/Lock manager in Kernelspace - Don't feel like dealing with
user-mode block devices

I was actually planning on a 5msec timeout to ignore that computer,
for now, then if I don't get a response within 100msec,  ping them,
and permenantly remove them from the list of peers and broadcast a
"this peer is dead" message to the network if the ping times out at
500msec.

> at both ends, right?) you have approximately 0ms left for the remote end to
> actually *do* anything, and for the local end to process the reply.
>
> And if the remote end has to issue a syscall during processing the request,
> you're basically screwed.

The code on the remote end is checking a list of locks to see if a
block is in it.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Fwd: Extended Volume Manager API
  2006-05-01 20:10     ` Fwd: " Circuitsoft Development
@ 2006-05-02 12:42       ` Rik van Riel
       [not found]         ` <64b292120605062123gdb302d2g201fa59e93bc6a25@mail.gmail.com>
  0 siblings, 1 reply; 7+ messages in thread
From: Rik van Riel @ 2006-05-02 12:42 UTC (permalink / raw)
  To: Circuitsoft Development; +Cc: Linux Kernel Mailing List

On Mon, 1 May 2006, Circuitsoft Development wrote:

> I was actually planning on a 5msec timeout to ignore that computer,
> for now, then if I don't get a response within 100msec,  ping them,
> and permenantly remove them from the list of peers and broadcast a
> "this peer is dead" message to the network if the ping times out at
> 500msec.

How are you going to prevent your "dead" peer from writing
to the disk anyway ?

-- 
All Rights Reversed

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Fwd: Fwd: Extended Volume Manager API
       [not found]         ` <64b292120605062123gdb302d2g201fa59e93bc6a25@mail.gmail.com>
@ 2006-05-08 21:17           ` Circuitsoft Development
  2006-05-08 21:51             ` Lars Marowsky-Bree
  0 siblings, 1 reply; 7+ messages in thread
From: Circuitsoft Development @ 2006-05-08 21:17 UTC (permalink / raw)
  To: Linux Kernel Mailing List

On 5/2/06, Rik van Riel <riel@redhat.com> wrote:
> On Mon, 1 May 2006, Circuitsoft Development wrote:
>
> > I was actually planning on a 5msec timeout to ignore that computer,
> > for now, then if I don't get a response within 100msec,  ping them,
> > and permenantly remove them from the list of peers and broadcast a
> > "this peer is dead" message to the network if the ping times out at
> > 500msec.
>
> How are you going to prevent your "dead" peer from writing
> to the disk anyway ?
>
> --
> All Rights Reversed
>

I'm not. They also need to get permission from the network before they
write to the disk, and they're not going to get permission without
hearing back from everybody. Besides, since the same network is used
to connect to the disks as is used to connect the computers to each
other, how would it be able to access the disks without being able to
access other computers which also connect to the disks?

(Sorry for the repeat, Rik)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Fwd: Fwd: Extended Volume Manager API
  2006-05-08 21:17           ` Fwd: " Circuitsoft Development
@ 2006-05-08 21:51             ` Lars Marowsky-Bree
  2006-05-09  7:24               ` Circuitsoft Development
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Marowsky-Bree @ 2006-05-08 21:51 UTC (permalink / raw)
  To: Circuitsoft Development, Linux Kernel Mailing List

On 2006-05-08T16:17:07, Circuitsoft Development <circuitsoft.devel@gmail.com> wrote:

> I'm not. They also need to get permission from the network before they
> write to the disk, and they're not going to get permission without
> hearing back from everybody. Besides, since the same network is used
> to connect to the disks as is used to connect the computers to each
> other, how would it be able to access the disks without being able to
> access other computers which also connect to the disks?

You really should read up about split-brain scenarios, quorum, IO
fencing, cluster membership algorithms and the amazing variety of
different types of crashes.


Sincerely,
    Lars Marowsky-Brée

-- 
High Availability & Clustering
SUSE Labs, Research and Development
SUSE LINUX Products GmbH - A Novell Business	 -- Charles Darwin
"Ignorance more frequently begets confidence than does knowledge"


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Fwd: Fwd: Extended Volume Manager API
  2006-05-08 21:51             ` Lars Marowsky-Bree
@ 2006-05-09  7:24               ` Circuitsoft Development
  0 siblings, 0 replies; 7+ messages in thread
From: Circuitsoft Development @ 2006-05-09  7:24 UTC (permalink / raw)
  To: Lars Marowsky-Bree; +Cc: Linux Kernel Mailing List

On 5/8/06, Lars Marowsky-Bree <lmb@suse.de> wrote:
> On 2006-05-08T16:17:07, Circuitsoft Development <circuitsoft.devel@gmail.com> wrote:
>
> > I'm not. They also need to get permission from the network before they
> > write to the disk, and they're not going to get permission without
> > hearing back from everybody. Besides, since the same network is used
> > to connect to the disks as is used to connect the computers to each
> > other, how would it be able to access the disks without being able to
> > access other computers which also connect to the disks?
>
> You really should read up about split-brain scenarios

I don't see how they'll happen if the heartbeat/management runs over
the same network that is used to connect to the disk.

> quorum

I'm aware of the idea. I think that a static quorum would be best, and
that it should be configured by the cluster administrator. See
http://lists.osdl.org/pipermail/osdlcluster/2004-January/000071.html
for a description of the problem with dynamic quorum.

> IO fencing

The primary target storage protocol is ATA-over-Ethernet, second is
iSCSI. As far as I know, it should be relatively simple, in both
circumstances, to tell the storage blade to cut off a computer until
it correctly re-registers itself with the cluster. Otherwise, a CISCO
managed switch should also be able to cut off a computer if it stops
responding to the cluster.

> cluster membership algorithms

Having trouble finding too many details on these. I'll keep looking,
but some pointers could be helpful.

> and the amazing variety of different types of crashes.

I figured that IO Fencing combined with STONITH (Shoot The Other Node
In The Head) could solve the problems caused by most crashes.

>
> Sincerely,
>     Lars Marowsky-Brée
>
> --
> High Availability & Clustering
> SUSE Labs, Research and Development
> SUSE LINUX Products GmbH - A Novell Business     -- Charles Darwin
> "Ignorance more frequently begets confidence than does knowledge"
>

These thoughts are based on my best understanding of how-stuff-works
so far. Any further comments would be greatly appreciated.


- Alex

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-05-09  7:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-01  5:26 Extended Volume Manager API Circuitsoft Development
2006-05-01  7:02 ` Valdis.Kletnieks
     [not found]   ` <64b292120605010759h4d9c74d7s717d125018ab95d3@mail.gmail.com>
2006-05-01 20:10     ` Fwd: " Circuitsoft Development
2006-05-02 12:42       ` Rik van Riel
     [not found]         ` <64b292120605062123gdb302d2g201fa59e93bc6a25@mail.gmail.com>
2006-05-08 21:17           ` Fwd: " Circuitsoft Development
2006-05-08 21:51             ` Lars Marowsky-Bree
2006-05-09  7:24               ` Circuitsoft Development

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®