기존 디스크에서 RAID1을 재구축하고 다른 디스크를 추가하세요.

기존 디스크에서 RAID1을 재구축하고 다른 디스크를 추가하세요.

이 질문은 위에서 볼 수 있는 다른 질문을 해결함으로써 파생됩니다.이 스레드.

간단히 말해서 내 전용 서버에는 2x3TB HDD가 포함된 RAID1 어레이가 있습니다. 일주일 전에 그 중 하나가 실패했습니다. 서버를 소유한 회사가 서버를 교체했기 때문에 이제 모든 데이터가 들어 있는 양호한 드라이브와 완전히 비어 있는 새 드라이브를 갖게 되었습니다.

가지고 있는 리소스로 RAID를 재구축하는 방법을 모르겠습니다.

이 정보는 유용할 수 있습니다(지금은 RAID가 없다는 것을 알고 있습니다).

root@rescue /dev # lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   2.7T  0 disk
sdb      8:16   0   2.7T  0 disk
├─sdb1   8:17   0     1M  0 part
├─sdb2   8:18   0   127M  0 part
├─sdb3   8:19   0   200M  0 part
├─sdb4   8:20   0   2.7T  0 part
└─sdb5   8:21   0 455.5K  0 part
loop0    7:0    0   1.5G  1 loop
root@rescue /dev # cat /proc/mdstat
Personalities : [raid1]
unused devices: <none>

업데이트 1 빠른 정보:

   CPU1: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (Cores 8)
   Memory:  15974 MB
   Disk /dev/sda: 3000 GB (=> 2794 GiB) doesn't contain a valid partition table
   Disk /dev/sdb: 3000 GB (=> 2794 GiB)
   Total capacity 5589 GiB with 2 Disks

업데이트 2:

Trinue가 제안한 대로:

root@rescue ~ # lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5)
00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b5)
00:1c.7 PCI bridge: Intel Corporation 82801 PCI Bridge (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation H67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
03:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
05:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 01)

업데이트 3:

@Koko가 제안한 대로 4개의 파티션을 마운트하려고 시도했지만 그 중 3개에서 오류가 발생했습니다. 이 디스크도 고장났나요?

root@rescue / # mount -o ro /dev/sdb1 /mnt/disk
mount: you must specify the filesystem type
root@rescue / # mount -o ro /dev/sdb4 /mnt/disk
ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Failed to calculate free MFT records: Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.
root@rescue / # mount -o ro /dev/sdb2 /mnt/disk
mount: you must specify the filesystem type
root@rescue / # mount -o ro /dev/sdb3 /mnt/disk
root@rescue / # cd /mnt/disk
root@rescue /mnt/disk # dir
EFI

업데이트 4:

Michael Martinez와 Koko의 제안에 따라 sdb에서 sda로 데이터를 복사하려고 시도했지만 다음 오류가 발생했습니다.

root@rescue /mnt/disk # dd if=/dev/sdb of=/dev/sda
dd: reading `/dev/sdb': Input/output error
6619712+0 records in
6619712+0 records out
3389292544 bytes (3.4 GB) copied, 67.7475 s, 50.0 MB/s

업데이트 5:

다음은 서버 소유자가 제공하는 지침입니다.http://wiki.hetzner.de/index.php/Festplattenaustausch_im_Software-RAID/en서버 중 하나에서 HDD를 교체하는 데 사용됩니다. 그러나 그들이 제공하는 예에는 RAID나 파티션이 없다는 것을 알 수 있습니다.

업데이트 6:

Herzner는 이미 나에게 다음과 같이 답변했습니다."하드웨어 RAID 컨트롤러를 주문하지 않았으므로 소프트웨어 RAID가 있습니다."

업데이트 7:

root@rescue / # mount /dev/sda1 /mnt/disk
mount: you must specify the filesystem type
root@rescue / # mount /dev/sda2 /mnt/disk
mount: you must specify the filesystem type
root@rescue / # mount /dev/sda3 /mnt/disk
root@rescue / # mount /dev/sda4 /mnt/disk
mount: you must specify the filesystem type
root@rescue / # mount /dev/sda5 /mnt/disk
mount: you must specify the filesystem type
root@rescue / # cd /mnt/disk
root@rescue /mnt/disk # dir
EFI

업데이트 8:

mount 명령을 실행하기 전에 ddsda에 sdb를 설치하고 다음을 사용하여 새 어레이 생성을 시작한다는 점을 지적해야 합니다.

# mdadm --create root --level=1 --raid-devices=2 missing /dev/sdb1  
# mdadm --create swap --level=1 --raid-devices=2 missing /dev/sdb2

root@rescue / # mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=8176304k,nr_inodes=2044076,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
213.133.99.101:/nfs on /root/.oldroot/nfs type nfs (ro,noatime,vers=3,rsize=8192,wsize=8192,namlen=255,acregmin=600,acregmax=600,acdirmin=600,acdirmax=600,hard,nocto,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=213.133.99.101,mountvers=3,mountproto=tcp,local_lock=all,addr=213.133.99.101)
aufs on / type aufs (rw,relatime,si=1848aabe5590850f)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1635764k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=3271520k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)

업데이트 9:

처음에 서버가 시작을 거부했을 때 고객 서비스에 수동으로 다시 시작해 달라고 요청했습니다. 그들이 나에게 준 대답은 다음과 같았다.

친애하는 고객님께, 서버를 다시 시작했지만 하드 드라이브 중 하나에 오류가 발생한 것 같습니다. 원하시면 교체해 드릴 수 있습니다. 드라이브의 데이터 손실과 약 15분의 가동 중지 시간을 확인하시기 바랍니다. 귀하의 서버는 이제 구조 시스템에 있습니다:

즉시 봇 웹사이트에 접속했을 때 서버를 관리하고 구조 시스템에 대한 정보를 검색할 수 있었는데 다음과 같은 내용을 발견했습니다.

복구 시스템을 활성화하면 DHCP 서버에 구성 파일이 생성됩니다. 다음에 재부팅하면 서버가 네트워크에서 부팅되고 TFTP 서버에서 최소 운영 체제가 로드됩니다. 그런 다음 필요에 따라 구조 시스템을 사용할 수 있습니다. 구조 시스템에 대한 명령은 60분 동안 지속됩니다. 그런 다음 서버를 다시 시작하면 시스템은 일반적으로 하드 드라이브에서 부팅됩니다. 자세한 내용은 위키를 방문하세요.

Rescue 시스템은 64비트 데비안입니다.

업데이트 10

root@rescue ~/.oldroot/nfs # ls /root/.oldroot/nfs
bash_aliases                rescue32-wheezy-v006.ext2
check                       rescue32-wheezy-v007.ext2
copy-vnode-lvs-to           rescue32-wheezy-v008.ext2
copy-vnode-lvs-to.bak       rescue32-wheezy-v009.ext2
esxi                        rescue64-lenny-v004.ext2
firmware_update             rescue64-squeeze-v011.ext2
freebsd                     rescue64-squeeze-v012.ext2
functions.sh                rescue64-squeeze-v013.ext2
images                      rescue64-squeeze-v014.ext2
images.old                  rescue64-squeeze-v015.ext2
install                     rescue64-squeeze-v016.ext2
ipmi                        rescue64-test.ext2
iso                         rescue64-wheezy-v000.ext2
knoppix                     rescue64-wheezy-v001.ext2
lost+found                  rescue64-wheezy-v002.ext2
opensolaris                 rescue64-wheezy-v003.ext2
raid_ctrl                   rescue64-wheezy-v004.ext2
README                      rescue64-wheezy-v005.ext2
rescue32-lenny-v004.ext2    rescue64-wheezy-v006.ext2
rescue32-squeeze-v011.ext2  rescue64-wheezy-v007.ext2
rescue32-squeeze-v012.ext2  rescue64-wheezy-v008.ext2
rescue32-squeeze-v013.ext2  rescue64-wheezy-v009.ext2
rescue32-squeeze-v014.ext2  shutdown-h
rescue32-squeeze-v015.ext2  shutdown-h-now
rescue32-squeeze-v016.ext2  tightvnc-vkvm.tar.gz
rescue32-test.ext2          vkvm64-squeeze-v001.ext2
rescue32-wheezy-v000.ext2   vkvm64-squeeze-v002.ext2
rescue32-wheezy-v002.ext2   vkvm64-test.ext2
rescue32-wheezy-v003.ext2   vkvm64-v001.ext2
rescue32-wheezy-v004.ext2   vkvm64-wheezy-overlay.ext2
rescue32-wheezy-v005.ext2   vkvm64-wheezy-overlay-v001.ext2

업데이트 11:

root@rescue ~ # fdisk -l /dev/sdb

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
256 heads, 63 sectors/track, 363376 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x8ab49420

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1  4294967295  2147483647+  ee  GPT
Partition 1 does not start on physical sector boundary.

업데이트 12:

root@rescue ~ # parted -l
Error: The backup GPT table is corrupt, but the primary appears OK, so that will
be used.
OK/Cancel? OK
Model: ATA ST3000DM001-9YN1 (scsi)
Disk /dev/sda: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name                          Flags
 1      17.4kB  1066kB  1049kB               LDM metadata partition
 2      1066kB  134MB   133MB                Microsoft reserved partition  msftres
 3      135MB   345MB   210MB   fat16        EFI system partition          boot
 4      345MB   3001GB  3000GB  ntfs         LDM data partition
 5      3001GB  3001GB  466kB                LDM data partition


Model: ATA ST3000DM001-9YN1 (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name                          Flags
 1      17.4kB  1066kB  1049kB               LDM metadata partition
 2      1066kB  134MB   133MB                Microsoft reserved partition  msftres
 3      135MB   345MB   210MB   fat16        EFI system partition          boot
 4      345MB   3001GB  3000GB  ntfs         LDM data partition
 5      3001GB  3001GB  466kB                LDM data partition


Model: Linux Software RAID Array (md)
Disk /dev/md126: 133MB
Sector size (logical/physical): 512B/4096B
Partition Table: loop

Number  Start  End    Size   File system     Flags
 1      0.00B  133MB  133MB  linux-swap(v1)


Model: Linux Software RAID Array (md)
Disk /dev/md127: 983kB
Sector size (logical/physical): 512B/4096B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  983kB  983kB  ext4

답변1

Hetzner와 이야기를 나눴는데 소프트웨어 RAID가 있다고 하더군요. 문제는 그렇지 않다는 것입니다. 이것은 당신 이 cat /proc/mdstat말한 것입니다

Personalities : [raid1]

unused devices: <none>

이는 소프트웨어 RAID가 없음을 의미합니다. 손상된 소프트웨어 RAID가 있는 경우 다음과 같이 나타납니다.

Personalities : [raid1] 
md0 : active raid1 sdb1[1] (F) sda1[0]
      1020032 blocks [2/2] [_U]

md1 : active raid1 sda2[2] sdb2[1] (F)
      975739772 blocks super 1.1 [2/2] [_U]
      bitmap: 3/8 pages [12KB], 65536KB chunk

unused devices: <none>

내 서버에서 가져온 것이므로 일부 세부 사항은 다를 수 있습니다. 마지막 하드 드라이브 오류에 대한 메모를 기반으로 다시 작성했기 때문에 일부 세부 사항이 잘못되었을 수 있지만 중요한 것은

  1. [_U](이것은 거울 중 하나가 깨졌음을 의미합니다. 모든 것이 잘되면 다음과 같이 말할 것입니다 [UU].)
  2. (F)(어느 부분이 실패했는지 알려줍니다. 이 경우 두 경우 모두 파티션입니다 /dev/sdb.)

매우 유사한 콘텐츠를 표시하기 위해 링크한 자체 지침입니다.

이 내용이 표시되면 새 하드 드라이브를 기존 어레이에 연결하는 것은 새 디스크를 분할하고 mdadm미러에 파티션 추가를 사용하는 간단한 문제입니다. 그러나 현재 RAID가 없는 시스템이 있으므로 이 작업을 수행할 수 없습니다.

나는 Hetzner에게 자체 문서를 참조하여 왜 소프트웨어 RAID의 흔적이 보이지 않는지 물어보고 싶습니다. 시스템을 완전히 부팅하려면 MD RAID 참조를 제거해야 할 수도 있지만, 그렇게 하면 RAID를 복구해야 할 수 있는 모든 기능이 엉망이 됩니다.

너라고 했잖아 "Linux 및 하드웨어 관련 내용에 대한 완전한 초보자"솔직히 그렇다면 문제가 있는 것입니다. 최대한 빨리 전문가의 도움을 구하고 시스템 백업 중 다운타임에 대비한 다음 완전히 재구축되고 RAID화된 케이스로 완전히 복원하겠습니다.

답변2

몇 줄이 누락된 것 같습니다 cat /proc/mdstat. 이것이 무엇인지 아는 것이 도움이 됩니다. 기존 소프트웨어 RAID 어레이에 새 디스크를 추가합니다.

mdadm --add RAID_DEV NEW_DISK.

전임자:mdadm --add /dev/md0 /dev/sdd

dmesg때로는 출력에서 ​​찾을 수 있는 RAID 장치를 알아야 합니다 .

# dmesg | grep md [7563017.386737] md: data-check of RAID array md0 [7563017.386747] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.

어레이가 활성/저하 상태인 경우 새 디스크를 추가하면 재구축 프로세스가 자동으로 시작됩니다( 를 사용하여 모니터링 가능 /proc/mdstat). Linux 배포판에 따라 /etc/mdadm/mdadm.conf어레이에 대한 추가 정보를 표시하는 파일이 있을 수도 있습니다.

관련 정보