이 질문은 위에서 볼 수 있는 다른 질문을 해결함으로써 파생됩니다.이 스레드.
간단히 말해서 내 전용 서버에는 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 명령을 실행하기 전에 dd
sda에 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>
내 서버에서 가져온 것이므로 일부 세부 사항은 다를 수 있습니다. 마지막 하드 드라이브 오류에 대한 메모를 기반으로 다시 작성했기 때문에 일부 세부 사항이 잘못되었을 수 있지만 중요한 것은
[_U]
(이것은 거울 중 하나가 깨졌음을 의미합니다. 모든 것이 잘되면 다음과 같이 말할 것입니다[UU]
.)(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
어레이에 대한 추가 정보를 표시하는 파일이 있을 수도 있습니다.