Saya memiliki 10 disk dengan masing-masing 8 TB dalam RAID6 perangkat keras (dengan demikian, 8 disk data + 2 paritas). Mengikuti jawaban dari pertanyaan yang sangat mirip , saya berharap untuk deteksi otomatis semua parameter yang diperlukan. Namun, ketika membuat sistem file XFS pada akhirnya, saya mengerti
# mkfs.xfs /dev/vgdata/lvscratch
meta-data=/dev/vgdata/lvscratch isize=256 agcount=40, agsize=268435455 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10737418200, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Ini sepertinya striping belum digunakan. Karena perbedaan istilah yang saya temukan di situs yang berbeda (ukuran strip, ukuran stripe, stripe chunk, ...), saya ingin bertanya apakah saya mendapatkan parameter manual dengan benar.
RAID 6 telah diatur dengan ukuran strip 256KB:
# ./storcli64 /c0/v1 show all | grep Strip
Strip Size = 256 KB
Dengan demikian, ukuran garis adalah 8 * 256KB = 2048KB = 2MB. Apakah ini benar? Menurut ini (dan jika saya memahaminya dengan benar), pvcreate
harus menggunakan ukuran strip (atau chunk) sebagai argumen untuk dataalignment
:
# pvcreate --dataalignment 256K /dev/sdb
Physical volume "/dev/sdb" successfully created
Perhatikan bahwa saya menggunakan seluruh perangkat RAID tanpa partisi. Sekarang a
# vgcreate vgdata /dev/sdb
Volume group "vgdata" successfully created
dengan PE standar Ukuran 4MB harus baik-baik saja karena merupakan kelipatan dari ukuran garis 2MB. Benar?
Sekarang, bagian dari vgroup ditugaskan ke volume logis:
# lvcreate -L 40T vgdata -n lvscratch
Logical volume "lvscratch" created.
Akhirnya, sistem file dibuat tetapi sekarang dengan argumen yang benar (ukuran garis 2MB, lebar garis 8):
# mkfs.xfs -d su=2048k,sw=8 /dev/vgdata/lvscratch
meta-data=/dev/vgdata/lvscratch isize=256 agcount=41, agsize=268434944 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10737418240, imaxpct=5
= sunit=512 swidth=4096 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Apakah pendekatan ini benar? Apakah ada yang perlu diingat untuk perluasan volume logis atau grup volume? Saya kira jika grup volume akan diperluas dengan sistem RAID6 lain, ukuran strip harus sama dengan RAID6 yang ada.
EDIT : Kebingungan saya tampaknya terutama didasarkan pada perbedaan penggunaan istilah yang terhubung ke stripe. Pembuat pengontrol RAID saya, LSI atau Avago, mendefinisikan persyaratan dengan cara berikut :
Lebar Garis
Lebar garis adalah jumlah drive yang terlibat dalam grup drive tempat striping diterapkan. Misalnya, grup empat disk drive dengan strip disk memiliki lebar empat strip.
Ukuran Stripe
Ukuran garis adalah panjang segmen data yang disisipkan di mana pengontrol RAID menulis di beberapa drive, tidak termasuk drive paritas. Misalnya, pertimbangkan strip yang berisi 64 KB ruang disk dan memiliki 16 KB data yang berada di setiap disk dalam strip tersebut. Dalam hal ini, ukuran strip adalah 64 KB, dan ukuran strip adalah 16 KB.
Ukuran Strip
Ukuran strip adalah bagian dari strip yang berada di drive tunggal.
Wikipedia (dan IBM ) tampaknya menggunakan definisi lain:
Segmen data berurutan yang ditulis atau dibaca dari disk sebelum operasi dilanjutkan pada disk berikutnya biasanya disebut unit potongan, langkah atau garis, sedangkan kelompok logis mereka yang membentuk operasi garis tunggal disebut strip atau strip. Jumlah data dalam satu chunk (stripe unit), sering dalam satuan byte, beragam disebut sebagai chunk size, ukuran stride, ukuran stripe, kedalaman stripe atau panjang stripe. Jumlah disk data dalam array kadang-kadang disebut lebar stripe, tetapi juga dapat merujuk pada jumlah data dalam stripe.
Jumlah data dalam satu langkah dikalikan dengan jumlah disk data dalam array (yaitu, kedalaman garis kali lebar garis, yang dalam analogi geometris akan menghasilkan suatu daerah) kadang-kadang disebut ukuran garis atau lebar garis. Striping lebar terjadi ketika potongan data tersebar di beberapa array, mungkin semua drive dalam sistem. Striping sempit terjadi ketika potongan data tersebar di drive dalam satu array.
Bahkan dalam teks Wikipedia ukuran stripe di atas digunakan dengan dua arti yang berbeda. Namun, saya kira sekarang, ketika membuat sistem file xfs, ukuran satu potongan yang disimpan pada satu drive harus diberikan sebagai argumen untuk su. Ini, harus mkfs.xfs -d su=256k,sw=8
di perintah di atas. Benar?
pvcreate
's--dataalignment
?