From e2710079b7e1c229665bacf1f34ea5fcd6db74c0 Mon Sep 17 00:00:00 2001 From: godp21 <godp21@inf.ufpr.br> Date: Thu, 20 Apr 2023 10:28:49 -0300 Subject: [PATCH] finished all necessary RAID systems. next step is to study it's implementations in ZFS --- README.MD | 6 ++++++ ZFS-RAIDs.md | 20 ++++++++++++++++++-- RAID0.png => imgs/RAID0.png | Bin RAID1.png => imgs/RAID1.png | Bin imgs/RAID10.png | Bin 0 -> 8250 bytes imgs/RAID6.png | Bin 0 -> 21128 bytes 6 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 README.MD rename RAID0.png => imgs/RAID0.png (100%) rename RAID1.png => imgs/RAID1.png (100%) create mode 100644 imgs/RAID10.png create mode 100644 imgs/RAID6.png diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..ec67e8d --- /dev/null +++ b/README.MD @@ -0,0 +1,6 @@ +# ROADMAP +[x] RAID{10,1,6,10} +[] RAID implementations in ZFS +[] Cache systems in ZFS +___ +[] ZFS for DB or lvm+ext4 diff --git a/ZFS-RAIDs.md b/ZFS-RAIDs.md index fa6b877..e922bfc 100644 --- a/ZFS-RAIDs.md +++ b/ZFS-RAIDs.md @@ -12,7 +12,7 @@ : Replicates *logical disk* volumes into multiple fisical disks, so the same information is stored in different hard disks in real time ## RAID0 - + RAID0 splits data across a multiple-disks array. The ideal setup is equaly-sized disks since the total storage used in a RAID0 arrangement is equal to the lower storage disk space times the total amount of disks. I a array of one 120Gb disk and one 360Gb disk, the total storage available would be 240 Gb. @@ -21,8 +21,24 @@ RAID0 create stripes of data so disk operations are n-times faster, n being the Besides fastness, RAID0 also is a good system to create large amounts of data storage units with lesser disks, since all disks in the array have unique information and, having equaly-sized units, uses 100% it's fisical capability as storage. ## RAID1 - + RAID1 mirrors sets of data on **two or more** fisical disks at a time. This RAID setting, as in RAID0, also doesn't offer any *parity* and the setup replicates the size of the smallest disk on all the other disks as well. In RAID1 theres no data striping since all data is replicated multiple times. RAID1 read operations can be taken by any of the disks in the array, it's useful on read performance and reliability on data, but it is bad on write performance and total data storage capacity. + +## RAID6 + + +RAID6 uses *double parity* striped all over the array so it's allways possible to have two failed disks without losing any information. It needs to calculate 2 different systems to make paritys p and q and store them in distinct units, because of this, RAID6 has a overhead cost on write operations that is the double of a single-parity implementation as in RAID5. RAID5 doesn't have read operations performance penaltys. + +RAID6 is a very good system to use when reliability and disponibility of data is more needed than performance. + +## RAID10 + + +RAID10 is a simuntaneous implementation of RAID0 and RAID1, combining the performance boost of RAID0 with the reliability of data present in RAID1. RAID10 needs at least two 'tanks' of disks arranged in RAID1 configuration, replicating all data in all disks of each tank. Than it takes these tanks and arrange then in a RAID0 setup, so all data is striped and writen segmented in each tank. + +RAID10 offers a boost in read and write operations performance, at the same time that it permits at least 1 disk of each tank failing at once without any data loss. This systems does this by using double of logical storage in fisical storage, so it'll always use half of total raw disks capacity. + +It's a good system when total storage isn't more requested than performance and relaibility. diff --git a/RAID0.png b/imgs/RAID0.png similarity index 100% rename from RAID0.png rename to imgs/RAID0.png diff --git a/RAID1.png b/imgs/RAID1.png similarity index 100% rename from RAID1.png rename to imgs/RAID1.png diff --git a/imgs/RAID10.png b/imgs/RAID10.png new file mode 100644 index 0000000000000000000000000000000000000000..17b1308fa499cacffa200ff43c46b5afadcaaa0a GIT binary patch literal 8250 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 Z{2puM$Wx}g^o9H>$ao}Zq>+Jv0RR&h4?h3^ literal 0 HcmV?d00001 diff --git a/imgs/RAID6.png b/imgs/RAID6.png new file mode 100644 index 0000000000000000000000000000000000000000..05a1cfeca5dd965d8a8b10875d36981c55b597ea GIT binary patch literal 21128 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 literal 0 HcmV?d00001 -- GitLab