Hi Paul,

I received this bug report through Debian's BTS. You may read the full
log at http://bugs.debian.org/557817, should you need to. 

I'm not quite sure what the issue is. At first I thought it might be
because he was connecting to localhost, but apparently that wasn't the
issue.

Could you have a look?

(in the interest of keeping progress visible, please make sure to keep
the bug address, [email protected], in Cc)

Regards,

----- Forwarded message from martin f krafft <[email protected]> -----

Date: Tue, 24 Nov 2009 17:55:47 +0100
From: martin f krafft <[email protected]>
To: Debian Bug Tracking System <[email protected]>
Subject: Bug#557817: nbd has I/O errors with md-over-dmcrypt-over-nbd
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on samba.grep.be
X-Spam-Level: 
X-Spam-Status: No, score=-3.3 required=3.0 tests=AWL,BAYES_00,
        RCVD_IN_DNSWL_LOW autolearn=ham version=3.2.5
Reply-To: martin f krafft <[email protected]>, [email protected]
Message-ID: <[email protected]>
User-Agent: Mutt/1.5.20 (2009-06-14)

Package: nbd-client
Version: 1:2.9.14-1
Severity: normal

I am trying to investigate a remote backup solution: nbd-server
gives me a block device from remote, which I locally crypt with
dmcrypt, and then use as a component of a RAID1. The backups are
written to the RAID1, and by rsync'ing the RAID, I effectively
generate an encrypted live-backup remotely.

Unfortunatly, that is only the theory, for in practice, the
dmcrypt+nbd combination doesn't seem to work (it might well be
a dmcrypt problem, though not likely):

  % dd if=/dev/zero of=nbd-file bs=1M count=1 seek=1023
  1+0 records in
  1+0 records out
  1048576 bytes (1.0 MB) copied, 0.00447344 s, 234 MB/s

  % nbd-server 127.0.0.1:12345 `pwd`/nbd-file 1024M -C/dev/null

  % netstat -natp | grep :12345
  (Not all processes could be identified, non-owned process info
  will not be shown, you would have to be root to see it all.)
  tcp        0      0 127.0.0.1:12345         0.0.0.0:*               LISTEN    
  16385/nbd-server

  % sudo nbd-client localhost 12345 /dev/nbd0
  Negotiation: ..size = 1048576KB
  bs=1024, sz=1048576

  % echo foo > key
  % sudo cryptsetup luksFormat /dev/nbd0 ./key

  WARNING!
  ========
  This will overwrite data on /dev/nbd0 irrevocably.

  Are you sure? (Type uppercase yes): YES

  % grep nbd /var/log/syslog | tail
  Nov 24 17:24:37 piper nbd_server[16385]: connect from 127.0.0.1, assigned 
file is /home/madduck/.tmp/cdt.hPOcvv/nbd-file
  Nov 24 17:24:37 piper nbd_server[16385]: Can't open authorization file 
/etc/nbd-server/allow (No such file or directory).
  Nov 24 17:24:37 piper nbd_server[16385]: Authorized client
  Nov 24 17:24:37 piper nbd_server[16405]: Starting to serve
  Nov 24 17:24:37 piper nbd_server[16405]: Size of exported file/device is 
1073741824
  Nov 24 17:24:37 piper kernel: [537982.733434]  nbd0: unknown partition table

  % sudo cryptsetup luksOpen -d ./key /dev/nbd0 cryptnbd
  Key slot 0 unlocked.

  % dd if=/dev/zero of=loop-file bs=1M count=1 seek=1023
  1+0 records in
  1+0 records out
  1048576 bytes (1.0 MB) copied, 0.00413988 s, 253 MB/s
  % sudo losetup -vf ./loop-file
  Loop device is /dev/loop0

  % sudo mdadm -Cl1 -n2 -ayes /dev/md99 /dev/mapper/cryptnbd /dev/loop0
  mdadm: array /dev/md99 started.
  % cat /proc/mdstat
  Personalities : [raid1]
  md99 : active (auto-read-only) raid1 loop0[1] dm-7[0]
        1047936 blocks [2/2] [UU]
          resync=PENDING

  unused devices: <none>

So far so good. Now as soon as I write anything to the array, it will start
sync'ing. And this is when the I/O errors start, but the RAID syncs fine
actually.

  % tail -f /var/log/syslog | grep nbd&
  [1] 17024 17025
  % dd if=/dev/zero of=/dev/md99 bs=1 count=1
  dd: opening `/dev/md99': Permission denied
  % sudo dd if=/dev/zero of=/dev/md99 bs=1 count=1
  1+0 records in
  1+0 records out
  1 byte (1 B) copied, 0.0993314 s, 0.0 kB/s
  Nov 24 17:41:45 piper kernel: [539010.683028] end_request: I/O error, dev 
nbd0, sector 0
  [???] (34 in between)
  Nov 24 17:42:41 piper kernel: [539066.182929] md: md99: resync done.
  Nov 24 17:42:41 piper kernel: [539066.212929] end_request: I/O error, dev 
nbd0, sector 0
  Nov 24 17:42:41 piper kernel: [539066.435511] end_request: I/O error, dev 
nbd0, sector 0
  Nov 24 17:42:43 piper mdadm[2599]: RebuildFinished event detected on md 
device /dev/md99
  Nov 24 17:42:43 piper kernel: [539068.098878] RAID1 conf printout:
  Nov 24 17:42:43 piper kernel: [539068.098883]  --- wd:2 rd:2
  Nov 24 17:42:43 piper kernel: [539068.098887]  disk 0, wo:0, o:1, dev:dm-7
  Nov 24 17:42:43 piper kernel: [539068.098891]  disk 1, wo:0, o:1, dev:loop0
  Nov 24 17:42:43 piper kernel: [539068.099206] end_request: I/O error, dev 
nbd0, sector 0

  % cat /proc/mdstat
  Personalities : [raid1]
  md99 : active raid1 loop0[1] dm-7[0]
        1047936 blocks [2/2] [UU]
        976510912 blocks [2/2] [UU]

  unused devices: <none>

Subsequently, I can read the entire array (I tried with dd) without
any further I/O errors, but when I write to it, the I/O errors
re-appear.

The problem only appears when dmcrypt is in between nbd and md, not
if I use /dev/nbd0 directly for the RAID1.

Thus this problem might well be with dmcrypt, but it's unlikely.
I tried the same setup with a loop device instead of nbd (loop0
directly, dmcrypt-on-loop1, RAID1 across loop0 and dmcrypt device),
and there were no I/O errors.

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-1-amd64 (SMP w/1 CPU core)
Locale: LANG=en_GB, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages nbd-server depends on:
ii  adduser                       3.111      add and remove users and groups
ii  debconf [debconf-2.0]         1.5.28     Debian configuration management sy
ii  libc6                         2.10.1-7   GNU C Library: Shared libraries
ii  libglib2.0-0                  2.22.2-2   The GLib library of C routines
ii  ucf                           3.0025     Update Configuration File: preserv

nbd-server recommends no packages.

nbd-server suggests no packages.

-- debconf information excluded

-- 
 .''`.   martin f. krafft <[email protected]>      Related projects:
: :'  :  proud Debian developer               http://debiansystem.info
`. `'`   http://people.debian.org/~madduck    http://vcs-pkg.org
  `-  Debian - when you have better things to do than fixing systems



----- End forwarded message -----

-- 
<Lo-lan-do> Home is where you have to wash the dishes.
  -- #debian-devel, Freenode, 2004-09-22



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to