Saya awalnya membuat perangkat lunak RAID menggunakan pengontrol yang hanya bisa mengatasi 2TB per disk. Disk adalah disk 3 TB. Ini bekerja dengan baik, tetapi hanya menggunakan 2TB pertama dari setiap disk.
Saya sekarang telah mengubah controller untuk melihat 3TB penuh. Karena itu saya ingin /dev/md0
menggunakan 1 TB terakhir juga.
Saya telah mencoba:
# mdadm --grow /dev/md0 --size=max
mdadm: component size of /dev/md0 has been set to 2147479552K
Tapi seperti yang Anda lihat, hanya melihat 2TB. Jika saya mencoba memaksanya lebih tinggi:
# mdadm --grow /dev/md0 --size=2147483648
mdadm: Cannot set device size for /dev/md0: No space left on device
Jadi, entah bagaimana sistem dapat melihat disk berukuran 3TB (dalam /proc/partitions
), tetapi RAID tidak dapat melihatnya sebagai 3TB.
Rincian mdadm:
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Mar 2 15:14:46 2012
Raid Level : raid6
Array Size : 38654631936 (36863.93 GiB 39582.34 GB)
Used Dev Size : 2147479552 (2048.00 GiB 2199.02 GB)
Raid Devices : 20
Total Devices : 21
Persistence : Superblock is persistent
Update Time : Wed Apr 25 19:47:09 2012
State : active
Active Devices : 20
Working Devices : 21
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 4096K
Name : node5:1
UUID : 8603c3df:b740ba22:8c9c82fd:a18b3133
Events : 845
Number Major Minor RaidDevice State
20 65 32 0 active sync /dev/sds
1 65 64 1 active sync /dev/sdu
2 65 80 2 active sync /dev/sdv
3 65 96 3 active sync /dev/sdw
4 8 192 4 active sync /dev/sdm
5 8 32 5 active sync /dev/sdc
6 8 48 6 active sync /dev/sdd
7 8 64 7 active sync /dev/sde
8 8 80 8 active sync /dev/sdf
9 8 96 9 active sync /dev/sdg
10 8 112 10 active sync /dev/sdh
11 8 128 11 active sync /dev/sdi
12 8 144 12 active sync /dev/sdj
13 8 160 13 active sync /dev/sdk
14 8 176 14 active sync /dev/sdl
15 8 208 15 active sync /dev/sdn
16 8 224 16 active sync /dev/sdo
17 8 240 17 active sync /dev/sdp
18 65 0 18 active sync /dev/sdq
19 65 16 19 active sync /dev/sdr
21 65 48 - spare /dev/sdt
Ukuran disk:
# cat /proc/partitions |grep 2930266584
8 48 2930266584 sdd
8 32 2930266584 sdc
8 112 2930266584 sdh
8 96 2930266584 sdg
8 80 2930266584 sdf
8 128 2930266584 sdi
8 176 2930266584 sdl
8 64 2930266584 sde
65 32 2930266584 sds
8 192 2930266584 sdm
8 144 2930266584 sdj
65 80 2930266584 sdv
8 224 2930266584 sdo
8 208 2930266584 sdn
8 160 2930266584 sdk
8 240 2930266584 sdp
65 0 2930266584 sdq
65 64 2930266584 sdu
65 16 2930266584 sdr
65 48 2930266584 sdt
65 96 2930266584 sdw
Edit:
# mdadm --version
mdadm - v3.1.4 - 31st August 2010
# uname -a
Linux lemaitre 3.2.0-0.bpo.1-amd64 #1 SMP Sat Feb 11 08:41:32 UTC 2012 x86_64 GNU/Linux
RAID6 menggunakan disk lengkap (yaitu tidak ada partisi)
Pagi ini sistem macet. Setelah reboot, sistem tidak menemukan RAID (yang mengerikan). Semua disk muncul sebagai suku cadang (S):
cat /proc/mdstat
Personalities :
md0 : inactive sdr[20](S) sds[21](S) sdq[18](S) sdp[17](S) sdo[16](S) sdn[15](S) sdl[14](S) sdk[13](S) sdj[12](S) sdi[11](S) sdh[10](S) sdg[9](S) sdf[8](S) sde[7](S) sdd[6](S) sdc[5](S) sdm[4](S) sdv[3](S) sdu[2](S) sdt[1](S)
42949652460 blocks super 1.2
Bahkan di sini jelas bahwa mdadm
tidak menemukan ukuran 3 TB.
Saya berlari mdadm --stop /dev/md0
. Menghapus entri di /etc/mdadm/mdadm.conf. Ran
mdadm -A --scan --force
, yang menyebabkan RAID untuk online dan membangun kembali.
sumber
fdisk -l /dev/sdd
ditunjukkan? OS apa yang Anda gunakan, apa versi mdadm?Jawaban:
Saya menyodok sekitar / sys dan semakin dekat dengan jawabannya.
Itu setuju dengan apa yang telah kita lihat sebelumnya. Tapi ini:
tampaknya menjelaskan mengapa RAID melihat ukuran yang salah: Sebagian besar drive muncul sebagai 2TB sedangkan 2 yang telah diganti muncul sebagai 3TB. Semua drive adalah model yang sama, jadi mari kita lihat, jika kita dapat mengubah ukuran yang dirasakan:
Voila. Component_size masih kecil, meskipun:
Mungkin itu bisa diubah oleh mdadm:
Sayangnya ini terkunci
mdadm
dan akses selanjutnya ke / dev / md0 diblokir. Dan begitu pula akses ke component_size:Menyebalkan. Tetapi bagian baiknya adalah bahwa di syslog dikatakan:
Sistem file di / dev / md0 masih berjalan.
Setelah reboot saya harus melakukan 'mdadm --grow / dev / md0 --size = max' lagi. Kemudian tunggu
resync
sampai selesai. Lagi-lagi akses ke / dev / md0 diblokir. Jadi reboot lain, diikuti olehxfs_growfs /dev/md0
dan kemudian ukurannya selesai.sumber
Saya pikir selama pembuatan ukuran perangkat terdaftar di suatu tempat di metadata. Mengubah pengontrol tidak mengubah metadata.
Hapus cadangan dari md, lalu tambahkan kembali ke RAID yang ditetapkan sebagai drive baru. Anda mungkin harus menghapus metadata (periksa halaman manual untuk --zero-superblock atau hapus seluruh disk). Jika itu berfungsi untuk satu disk, ulangi prosedur untuk semua drive yang tertinggal juga. Lalu akhirnya lakukan --grow.
Jangan hapus disk tambahan sampai sinkronisasi selesai !!
sumber
fail
drive, laluremove
,zero-superblock
untuk menghapus metadata. Saat set RAID Anda digunakan, Anda dapat menambahkannya sebagai cadangan, yang berarti tidak akan disinkronkan hingga drive lain gagal (itu adalah perilaku normal) tetapi hanya berfungsi untuk satu drive ATAU Andaadd
dan itu membutuhkan sinkronisasi. Saya tahu itu membutuhkan selamanya. Atau Anda menerima kenyataan bahwa Anda tidak dapat menambahkan semua penyimpanan yang tersedia. Salah satu keuntungan menggunakan tabel partisi yang tidak Anda miliki. Tidak menggunakan tabel partisi tidak buruk, tetapi dalam kasus khusus ini akan membantu Anda.