LVM: 미러링되나요? 복사가 그렇게 느린가요?

LVM: 미러링되나요? 복사가 그렇게 느린가요?

배경: 내 Windows Home Server가 멈췄습니다. 일종의 OS 멈춤입니다. 드라이브와 하드웨어는 여전히 괜찮습니다. 모든 데이터를 백업했는지 확인한 후 Ubuntu와 LVM(그리고 btsync와 samba는 다른 이야기입니다)을 살펴보기로 결정했습니다.

사용 가능한 드라이브는 1TB, 1.5TB, 2TB입니다.

어떻게 하면 이들을 분리해서 함께 공격할 수 있을지 고민 중입니다. 나는 원을 그리며 돌아다녔다. 내가 한 일은 다음과 같습니다.

  • 전체 디스크에 대해 각 디스크에 파티션 1개
  • pvcreate /dev/sd[b,c,d]
  • vg는 위의 모든 항목을 하나의 vg "vg1"로 생성합니다.
  • vg1에서 lvcreate -m1을 실행합니다.

나는 크기를 가지고 놀았습니다. 물론, lvcreate를 생성하고 1.8TB까지 확장할 수 있지만 그 이상은 아닙니다.

질문 #1: 정말 미러링되나요? 저는 그런 것 같아요. 그러나 저는 "이 드라이브와 저 드라이브의 크기가 같기 때문에 페어링" 지침을 따르지 않습니다(이는 LVM에서 찾은 거의 모든 예입니다).

O/S 드라이버를 제외한 lsblk의 출력:

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

질문 #2: !#$!$% 사본은 언제 완료되나요? 현재까지 약 24시간 동안 실행되었습니다. 정말 그렇게 느린가요? 아니면 현재 내 데이터를 어레이에 다시 동기화하고 있기 때문에 뒤처진 것입니까? 아니면 조정하고 수정할 수 있는 문제가 있나요?

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

피드백과 안내를 보내주셔서 미리 감사드립니다.

추가 세부정보(있는 경우):

  • EX485 ex HP 미디어 서버
  • 14.3일 전 Ubuntu 데스크톱 32비트 상황(<2G 메모리)
  • 부팅 드라이브를 다른 곳에 마운트하고, 마운트하고, sshd를 추가한 다음 이동하여 설치하므로 낮은 수준의 디스크 드라이버 문제일 수 있습니다.

업데이트 #1작은 글씨를 찾았어요여기(내가 강조함):

미러가 생성된 후 미러 영역이 동기화됩니다. 대형 미러 구성 요소의 경우 동기화 프로세스시간이 오래 걸릴 수 있습니다. 복구가 필요하지 않은 새 미러를 생성하는 경우 nosync 매개변수를 지정하여 첫 번째 장치로부터의 초기 동기화가 필요하지 않음을 나타낼 수 있습니다.

이는 "긴 복사 시간"이 정확함을 나타낼 수 있습니다.

답변1

0TB에서 lvm 미러 볼륨을 생성하려면 --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.

답변2

첫 번째 질문에 대답하자면, 그렇습니다. 미러링되고 있습니다. 이 명령의 출력에는 lvs다음 열의 정보가 표시됩니다 Copy%.

LV             VG        Attr      LSize   Pool Origin Data%  Move Log      Copy%
lv1            vg1       mwi-aom--   1.80t                         lv1_mlog  43.83

보시다시피 귀하의 경우에는 43.83%입니다. 이는 해당 시점에 미러가 여전히 부분적임을 의미합니다(미러에서 복구할 수 없음).

자세한 정보를 얻고 어떤 디스크가 사용되는지 확인하려면 논리 파티션의 장치를 나열해야 합니다. 이는 다음 명령을 사용하여 수행됩니다.

sudo lvs -a -o +devices

그러면 어떤 이미지가 어떤 장치를 사용하는지 확인할 수 있습니다. 내 컴퓨터(같은 크기의 두 개의 드라이브가 있음)에서 보면 다음과 같습니다.

LV                      VG      Attr       LSize    Pool Origin Data%  Meta%  Move Log         Cpy%Sync Convert Devices
root                    tristan mwi-aom--- <250.00g                                [root_mlog] 100.00           root_mimage_0(0),root_mimage_1(0)
[root_mimage_0]         tristan iwi-aom--- <250.00g                                                             /dev/sda5(0)
[root_mimage_1]         tristan iwi-aom--- <250.00g                                                             /dev/sdb5(0)
[root_mlog]             tristan mwn-aom---    4.00m                                            100.00           root_mlog_mimage_0(0),root_mlog_mimage_1(0)
[root_mlog_mimage_0]    tristan iwi-aom---    4.00m                                                             /dev/sdb5(472781)
[root_mlog_mimage_1]    tristan iwi-aom---    4.00m                                                             /dev/sdb5(63999)
swap_1                  tristan -wi-ao----  <15.97g                                                             /dev/sda5(472748)
tristan-home            tristan rwi-aor---   <1.56t                                            2.72             tristan-home_rimage_0(0),tristan-home_rimage_1(0)

귀하의 경우 한 복사본에는 1Tb와 1.5Tb를 사용하고 다른 복사본에는 2Tb를 사용합니다. 결과적으로 약 1.8Tb의 파티션이 생성됩니다(드라이브가 2Tb로 보이지만 실제로는 2,000,000,000,000[또는 2^4 대신 2x10^2)이기 때문입니다. LVM 소프트웨어는 RAID1 미러를 요청할 때 여러 물리적 장치를 선택할 수 있을 만큼 똑똑합니다. RAID에 대한 특정 그룹을 만들지 않고 특정 물리적 장치를 강제로 사용하는 방법이 있는지 모르겠습니다.

두 번째 질문(복사 속도가 너무 느린가요?)에 대해서는 "쓰기가 이렇게 느린가요?"라는 뜻이라고 가정하고, 예, 쓰기 속도가 느려질 수 있습니다. 최적의 RAID1 성능을 위해서는 정확히 동일한 특성을 가진 N개의 드라이브가 있어야 하며 모든 드라이브의 동일한 위치에 모든 블록이 있어야 합니다.

느린 쓰기에 대한 최악의 시나리오는 각 드라이브의 속도가 서로 다르다는 것입니다. 예를 들어, 5000rpm과 7200rpm이 있을 수 있으며, 이 경우 더 느린 속도와 두 속도 간의 다양한 동기화를 사용해야 합니다.

드라이브에 데이터를 전송하는 데 사용되는 DMA를 올바르게 공유해야 하고 일부 구형 데스크탑 컴퓨터는 RAID1에 적합하지 않을 수 있으므로 하드웨어가 불량할 수도 있습니다.

관련 정보