Alinierea clusterelor

Marius '95

troubleShooter
Cum fac sa aflu daca clusterele unei partitii FAT16 sau FAT32 sunt aliniate cu sectoarele fizice ale unui SSD? Am gasit pe net niste metode prin care se poate calcula pozitia primului cluster, dar sincer sa fiu, oricat de bine m-as pricepe eu la harduri, calculele alea ma depasesc.

Am mai gasit si niste programe care se ocupa cu alinierea partitiilor, dar gandindu-ma la cat de complexe erau calculele pentru FAT, am serioase indoieli ca respectivele programe calculeaza bine. Spre exemplu, a 3-a partitie pe care o am incepe fix la cilindrul 1024 si coincidenta este prea mare ca ea sa fie perfect aliniata.

Cum altfel as putea afla daca o partitie este aliniata sau nu?
 
Habar n-am daca asta e ceea ce vrei sa stii dar zic sa zic.

To see if your partitions are aligned correctly, hit the Start menu and type in msinfo32. Enter Msinfo32 and go to Components > Storage > Disks. Look for your SSD on the list and find the "Partition Starting Offset" item. If this number is divisible by 4096 (that is, if dividing it by 4096 equals a whole number and not a decimal), your partition is correctly aligned.

Io am rulat AS SSD ala si mi-a zis alignment OK sau asa ceva si asa a ramas de atunci.
 
[...] "Partition Starting Offset" item. If this number is divisible by 4096 (that is, if dividing it by 4096 equals a whole number and not a decimal), your partition is correctly aligned.
Valabil pentru NTFS. La FAT, primul cluster al partitiei urmeaza dupa Boot Record (1 sector), Descriptor (1 sector), un numar variablil de sectoare rezervate si 2 FAT-uri (egale, marime fixa in functie de dimensiunea partitiei). Calcularea pozitiei primului cluster e criminala. Uite aici un ghid despre formatarea unei partitii cu un numar definit de sectoare rezervate astfel incat clusterele sa ajunga aliniate: http://www.patriotmemory.com/forums/showthread.php?3696-HOWTO-Increase-write-speed-by-aligning-FAT32

Ma gandeam ca poate exista vreo metoda mai directa, spre exemplu masurand performanta.
 
:biggrin:

Vorbind de aliniere... Tocmai am luat 4 discuri Seagate de 2TB (SV35, pentru echipamente de înregistrare video cu activitate 24/7) pentru NAS, softul care rulează de pe un card CF e OpenMediaVault, a făcut singur matricea RAID5 și partiția EXT4, da' habar nu am dacă trebuie vreo aliniere și cum pot să o verific.
 
AS SSD, iei fiecare HDD și-l conectezi la PC și poate merge. Altfel nu văd de ce te-ar interesa, misalignment este doar când faci resize la partiții "la stânga" sau la clonarea de partiții pe alte HDDuri/SSDuri, nu la crearea de partiții noi.
 
Pai nu e SSD, nu conteaza. La discuri citeste oricum cate un cilindru si nu ai niciodata un cluster pe 2 cilindri. La SSD daca ai clusterul aliniat prost atunci toate clusterele de pe disc sunt aliniate prost.
 
AFAIK contează și la HDDuri alinierea, dar mult mai puțin. Când am dat teste de performanță pentru review-ul la SSDul Kingston am observat o ușoară descreștere a performanței la HDDuri cu partiții care după AS SSD erau aliniate prost. Nu ceva incredibil, dar era ceva acolo. Devine foarte importantă dacă vrei să migrezi partiția pe un SSD, totuși.
 
Ahem. Din 1/1/2011, toate hard discurile (SATA) se fac cu Advanced Format - sectoare de 4 KB în loc de 512 bytes. Niciunde nu scrie ceva de SSD. Windows XP și alte sisteme de operare mai vechi folosesc spațiul pe disc începând cu sectorul fizic 63, nu 64, și de aici problema alinierii între accesarea unui sector logic vs. sector fizic. Windows 7 știu că lucrează diferit cu discurile și nu îmi pun probleme, era vorba însă de linuxul din NAS. Tocmai am citit, însă, că problema e rezolvată din kernelul 2.6.31 încolo, și NAS-ul are 2.6.32, deci ar trebui să fie ok.
 
Eu ştiam că e important utilitarul cu care se face partiţionarea. fdisk, de exemplu, a învăţat relativ recent (cam de-un an, de la versiunea 2.17.2) să creeze prima partiţie începând cu sectorul 2048, by default. Nu ştiu în ce fel e implicat kernel-ul la partiţionare. Având în vedere că mai ai şi raid pe-acolo, contează şi dimensiunea chunk-ului, dar, se pare că, atâta timp cât e multiplu de 4, all is good.

Dacă ai acces via ssh pe el, dă-i un fdisk şi un mdadm --detail să vedem cum arată.
 
Disk /dev/sda: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 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: 0x9347896a

Device Boot Start End Blocks Id System



/dev/md127:
Version : 1.2
Creation Time : Wed Aug 8 03:13:00 2012
Raid Level : raid5
Array Size : 5860535808 (5589.04 GiB 6001.19 GB)
Used Dev Size : 1953511936 (1863.01 GiB 2000.40 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Update Time : Sat Aug 11 02:14:29 2012
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : openmediavault:Storage
UUID : 88e0c6ad:c86707dc:4db9c4d4:c8c2faa6
Events : 34

Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 0 2 active sync /dev/sda
3 8 48 3 active sync /dev/sdd
 
Looks good. Având în vedere că squeeze are fdisk 2.17.2, şi tabela de partiţii ar trebui să arate bine.
 
Pot afirma cu certitudine ca Paragon Alignment Tool greseste la calcule.
El imi indica ca a doua partitie (cea cu windows) nu este aliniata. Gresit. Am scris un fisier .txt cu "Marius94" in el, am deschis discul (nu partitia) intr-un editor hex si am gasit "Marius94" intr-un sector multiplu de 8. Tinand cont ca primul sector este sectorul 0, rezulta ca acel cluster in care a fost stocat fisierul este corect aliniat.

Imi trebuie un utilitar de formatat care sa aiba optiuni extra-speciale. Vreau sa formatez o partitie FAT32 cu un singur FAT (in mod normal sunt 2 copii) pentru a reduce nr. de scrieri pe SSD. Cine imi poate recomanda un asemenea utilitar?
 
Imi trebuie un utilitar de formatat care sa aiba optiuni extra-speciale. Vreau sa formatez o partitie FAT32 cu un singur FAT (in mod normal sunt 2 copii) pentru a reduce nr. de scrieri pe SSD. Cine imi poate recomanda un asemenea utilitar?
Daca inteleg bine nu vrei sa folosesti FAT32, ci o partitie custom - cum vrei sa o accesezi presupunand ca reusesti sa o creezi? Driverul respectiv o sa vrea sa scrie in 2 locuri ca asa stie el, nu intr-unul, si nu stii ce eroare o sa dea.
 
Daca inteleg bine nu vrei sa folosesti FAT32, ci o partitie custom - cum vrei sa o accesezi presupunand ca reusesti sa o creezi? Driverul respectiv o sa vrea sa scrie in 2 locuri ca asa stie el, nu intr-unul, si nu stii ce eroare o sa dea.
Dar asta nu ma impiedica sa testez, nu? Adica n-ar fi prima data cand busesc Windows-ul sau partitiile, iar daca merge, avantajul obtinut este evident.
 
FAT-ul este scris in doua locuri tot din motive evidente. A se citi erori si redundanta. Nu vad de ce ai avea vreun avantaj daca nu faci asta.
 
Eu nu vad cum ar merge, drept pentru care mi se pare o pierdere de vreme sa incerci. Ce poti sa testezi, ce fel de eroare iti da? Si cu ce te ajuta daca afli codul de eroare? Scrii un driver custom pentru single-FAT? Atunci de ce nu iti faci propriul filesystem, MariusFAT? Poti face ce doresti tu cu el, il poti scrie si de la coada la cap, fara limite.
 
Dar un utilitar de formatare nu stie nimeni?
Stiti ce? Mai bine lasati-o balta ca bootez un linux si acolo sunt convins ca exista.
 
Back
Top