Geschikt voor: | |
Versie: | 10.04 LTS 12.04 LTS 12.10 13.04 |
SSD (Solid State Disk)
Een SSD-schijf (Engels: Solid State Disk) is een zeer snelle computerschijf die bestaat uit geheugenchips in plaats van een ronddraaiende schijf.
Een SSD-schijf kan op dezelfde manier worden ingebouwd en gebruikt als een normale (2e) harde schijf.
Een SSD-schijf is veel sneller dan een normale, draaiende harde schijf.
In de praktijk zal een SSD schijf zonder enige aanpassing met Ubuntu goed functioneren en een normale levensduur hebben.
fijnslijperij
Dit artikel geeft mogelijkheden Ubuntu nog meer af te stemmen op het gebruik van een SSD-schijf. Geen van de stappen zijn noodzakelijk voor het gebruik van een SSD en zijn optioneel.
In dit artikel wordt aangenomen dat de SSD-schijfeenheid de 2e schijf is en apparaatnaam /dev/sdb heeft.
relatime
Ubuntu gebruikt standaard de optie relatime. In de praktijk is het verschil tussen relatime en noatime niet te merken en is er geen reden de standaard instelling te wijzigen.
Door de atime-optie wordt bijgehouden wanneer een bestand voor de laatste keer is gelezen. Dit veroorzaakt extra schrijfacties en zelden functioneel gebruikt. Met de relatime optie gebeurt het bijwerken van de datum waarop een bestand werd gelezen alleen wanneer het bestand ondertussen gewijzigd werd. Met de noatime optie wordt niet bijgehouden wanneer een bestand wordt gelezen.
trim
Automatische ondersteuning van trim is mogelijk door toevoegen van de discard optie in /etc/fstab.
Voorbeeld:
/dev/sdb3 / ext4 discard,noatime,errors=remount-ro 0 1
De ondersteuning van trim is mede afhankelijk van de software(versie) op de SSD.
Alternatief is een fstrim opdracht.
Zie deze wiki voor het toevoegen van een parameter in /etc/fstab.
Staat de rootpartitie ook op de SSD, dan kan het nodig zijn een kleine wijziging aan te brengen in /etc/default/grub voordat trim op deze partitie kan werken.
Zoek de regel die begint met GRUB_CMDLINE_LINUX_DEFAULT=
- In de meeste installaties zal die er ongeveer zo uitzien:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Voeg nu op het eind de optie rootfstype=ext4 toe.
- Na deze wijziging moet GRUB geüpdate worden met de opdracht:
sudo update-grub
Een Engelstalige handleiding en een manier om te controleren of trim ook daadwerkelijk werkt staat hier.
I/O scheduler
Mogelijk kan de I/O scheduler (de "regelaar" van de lees- en schrijfacties) beter worden ingesteld. Kijk welke instellingen mogelijk zijn:
$ cat /sys/block/sdb/queue/scheduler noop anticipatory deadline [cfq]
Gebruik GEEN anticipatory voor een SSD schijf!
Door het gebruik van deadline zullen lees acties voorrang krijgen op schrijf acties omdat lees acties vaak een vertragend effect hebben.
Met de instelling noop wordt de regelaar uitgeschakeld. In uitzonderlijke gevallen kan dit de gewenste instelling zijn bijvoorbeeld als de (RAID) hardware deze functie heeft of als het doel is minimale stroomafname voor een klein netbookje.
Om de deadline scheduler eenmalig uit te proberen:
sudo -i echo deadline > /sys/block/sdb/queue/scheduler exit
Om deze instelling definitief te maken kan de regel echo deadline > /sys/block/sdb/queue/scheduler worden toegevoegd aan bestand /etc/rc.local.
wisselgeheugen
Voor het wisselgeheugen kan een partitie op een draaiende harde schijf worden gebruikt om slijtage aan de SSD-schijfeenheid maximaal te beperken.
RAM disk
probeer dit alleen uit als de computer voldoende (> 4GB RAM) geheugen heeft.
Ubuntu kan tijdelijke bestanden opslaan in de map /tmp. Om slijtage tot een minimum te beperken kan deze map in het geheugen op een RAM-disk worden geplaatst. Open bestand /etc/fstab en voeg de volgende regel toe:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
Herstart de computer.
ext2/ext3/ext4
Een regelmatig gegeven advies is om voor een SSD-schijf het ext2-bestandssysteem te gebruiken. Het ext2-bestandssysteem is per definitie sneller dan ext3 en heeft minder schrijf acties (nadeel: ext2 moet na een stroomuitval hersteld worden met e2fsck).
Het ext4-systeem is weer sneller dan ext3 en concurrerend met ext2, mede afhankelijk van de toepassing. De overhead door het gebruik van een journaled bestandssysteem bij ext3/ext4 is zo beperkt dat eigenlijk alle (ext2/3/4) bestandssystemen bruikbaar zijn voor een modern model/type SSD-schijfeenheid. bron
iostat
Na installeren van het pakket sysstat toont het terminalvenster via de opdracht iostat -m /dev/sdb de gelezen en geschreven data (in MB).
partities
Vanaf Ubuntu Lucid Lynx 10.04 LTS is de uitlijning (Engels: Alignment) van partities geschikt voor gebruik met een SSD. Dit hoofdstuk kan dan worden overgeslagen.
Bij eerdere versies kan het bestandssysteem zelf worden uitgelijnd op de blokken die de SSD intern gebruikt. Een veel gegeven advies is partities te laten beginnen op een veelvoud van 128K.
tip afkomstig van een blog van Theodore Ts'o, Linux kernelprogrammeur.
Door fdisk in te stellen voor een schijf met 224 leeskoppen ofwel 56 sectoren per track, beginnen de partities op de grens van 128K.
fdisk -S 56 /dev/sdb
Dit zal niet zomaar werken voor de 1e partitie, die start nu op een 4K grens. De blog van Theodore Ts'o geeft hiervoor een praktische tip om de 1e partitie als /boot-partitie te gebruiken.
Voorbeeld:
$ sudo fdisk -S 56 /dev/sdb Het aantal cilinders van deze schijf is ingesteld op 4985. Hier is niets mis mee, maar het is groter dan 1024 en kan bij bepaalde instellingen problemen veroorzaken met: 1) opstartsoftware (bijvoorbeeld oude versies van LILO), 2) partitioneringssoftware van andere besturingssytemen (bijvoorbeeld DOS FDISK of OS/2 FDISK). Opdracht (m voor hulp): n Opdracht Actie e uitgebreide partitie p primaire partitie (1-4) p Partitienummer (1-4): 1 Eerste cilinder (1-4985, standaard 1): Standaardwaarde 1 wordt gebruikt Laatste cilinder, +cilinders of +grootte{K,M,G} (1-4985, standaard 4985): +100M Opdracht (m voor hulp): a Partitienummer (1-4): 1 Opdracht (m voor hulp): n Opdracht Actie e uitgebreide partitie p primaire partitie (1-4) p Partitienummer (1-4): 2 Eerste cilinder (18-4985, standaard 18): Standaardwaarde 18 wordt gebruikt Laatste cilinder, +cilinders of +grootte{K,M,G} (18-4985, standaard 4985): +1G Opdracht (m voor hulp): t Partitienummer (1-4): 2 Hex-code (typ L om alle codes te tonen): 82 Systeemtype van partitie 2 is veranderd naar 82 (Linux wisselgeheugen) Opdracht (m voor hulp): n Opdracht Actie e uitgebreide partitie p primaire partitie (1-4) p Partitienummer (1-4): 3 Eerste cilinder (186-4985, standaard 186): Standaardwaarde 186 wordt gebruikt Laatste cilinder, +cilinders of +grootte{K,M,G} (186-4985, standaard 4985): Standaardwaarde 4985 wordt gebruikt Opdracht (m voor hulp): p Schijf /dev/sdb: 32.0 GB, 32017047552 bytes 224 koppen, 56 sectoren/spoor, 4985 cilinders Eenheid = cilinders van 12544 * 512 = 6422528 bytes Schijf-ID: 0x94c58d79 Apparaat Opstart Begin Einde Blokken ID Systeem /dev/sdb1 * 1 17 106596 83 Linux /dev/sdb2 18 185 1053696 82 Linux wisselgeheugen /dev/sdb3 186 4985 30105600 83 Linux Opdracht (m voor hulp): w
Als een andere swap-partitie gebruikt wordt kan het aanmaken van de 1G wisselgeheugen-partitie worden overgeslagen.
- Kies bij de installatie van Ubuntu voor handmatig partitioneren.
- Koppel en formatteer de partities als respectievelijk /boot, wisselgeheugen en / (root-)partitie.
Meer informatie
Engelstalig: