LVM: is this mirrored? is copy this slow

lvm

Background: My Windows Home Server bit the dust – some kind of OS Hang. The drives and hardware were still good; after making sure I had all my data backed up, I decided to investigate Ubuntu and LVM, (along with btsync and samba, but that's another story)

I had the following drives available to me: 1TB, 1.5TB, and 2TB.

I was trying to figure out how to partition them and raid them together. I ran around in several circles. What I ended up doing was:

  • 1 partition on each disk for the whole disk
  • pvcreate /dev/sd[b,c,d]
  • vgcreate all of the above together into a single vg "vg1"
  • lvcreate -m1 on that vg1.

I played with the sizes. Sure enough it would let me lvcreate and extend up to 1.8tb, but not more.

Question #1: Is it really mirrored? I think it is; however, I didn't follow any guidelines of "pair this drive with that drive because they are the same size" (which is pretty much every example I've found on LVM).

Output of lsblk, excluding the O/S drive:

sdb                            8:16   0   1.4T  0 disk
└─sdb1                         8:17   0   1.4T  0 part
  └─vg1-lv1_mimage_0 (dm-1)  252:1    0   1.8T  0 lvm
    └─vg1-lv1 (dm-3)         252:3    0   1.8T  0 lvm  /srv/samba/share
sdc                            8:32   0   1.8T  0 disk
└─sdc1                         8:33   0   1.8T  0 part
  └─vg1-lv1_mimage_1 (dm-2)  252:2    0   1.8T  0 lvm
    └─vg1-lv1 (dm-3)         252:3    0   1.8T  0 lvm  /srv/samba/share
sdd                            8:48   0 931.5G  0 disk
└─sdd1                         8:49   0 931.5G  0 part
  ├─vg1-lv1_mlog (dm-0)      252:0    0     4M  0 lvm
  │ └─vg1-lv1 (dm-3)         252:3    0   1.8T  0 lvm  /srv/samba/share
  └─vg1-lv1_mimage_0 (dm-1)  252:1    0   1.8T  0 lvm
    └─vg1-lv1 (dm-3)         252:3    0   1.8T  0 lvm  /srv/samba/share

Question #2: When is the !#$!$% copy going to be done? Its been running for about 24 hours so far. Is it really this slow? Or is it falling behind because I'm also currently btsync'ing my data back to the array? Or is there something wrong that I can go tweak and fix?

Output of lvs -a:

  LV             VG        Attr      LSize   Pool Origin Data%  Move Log      Copy%  
  root           ubuntu-vg -wi-ao--- 697.39g
  swap_1         ubuntu-vg -wi-ao---   1.00g
  lv1            vg1       mwi-aom--   1.80t                         lv1_mlog  43.83
  [lv1_mimage_0] vg1       Iwi-aom--   1.80t
  [lv1_mimage_1] vg1       Iwi-aom--   1.80t
  [lv1_mlog]     vg1       lwi-aom--   4.00m

Thanks for any feedback and direction in advance.

Other details if its at all relevant:

  • EX485 former HP Media server
  • Ubuntu Desktop 32bit 14.something as of 3 days ago (<2G of ram)
  • Installed by mounting boot drive elsewhere, installing, adding sshd, and then moving it over, so maybe its a low level disk driver problem

update #1 I caught some of the fine print here (my bold added):

When a mirror is created, the mirror regions are synchronized. For large mirror
components, the sync process may take a long time. When you are creating a new
mirror that does not need to be revived, you can specify the nosync argument to
indicate that an initial synchronization from the first device is not required.

This might indicate that the "long copy time" is correct.

Best Answer

if you are creating a lvm mirror volume from zero of some TB, maybe you can use the option --nosync

man lvcreate
 Specifying the optional argument --nosync will cause the creation of the mirror to skip the initial resynchronization.  Any data written afterwards  will  be
          mirrored,  but  the  original  contents  will  not be copied.  This is useful for skipping a potentially long and resource intensive initial sync of an empty
          device.
Related Question