Tag-Archive for » linux «

Sunday, August 04th, 2013 | Forfatter:

I had a power outage affect my server’s large md RAID array. Rather than let the server as a whole be down while waiting for it to complete an fsck, I had it boot without the large array so I could run the fsck manually.

Men, when running it manually I realised I had no way of knowing how far it was and how long it would take to complete. This is especially problematic with such a large array. With a little searching I found the tip of adding the -C parameter when calling fsck. I couldn’t find this in the documentation however: fsckhelp showed no such option.

The option turns out to be ext4-specific, and thus shows a perfectly functional progress bar with a percentage indicator. To find the information, instead offsckhelp” eller “man fsck”, you have to inputfsck.ext4help” eller “man fsck.ext4”. 🙂

Dele
Sunday, August 04th, 2013 | Forfatter:

Historikk

Mye hadde forandret seg siden sist jeg nevnte min personlige server – den har vokst i store sprang (den har nå en 7TB md RAID6) og det hadde nylig blitt ombygd med Ubuntu Server.

Arch var aldri en feil. Arch Linux hadde allerede lært meg så mye om Linux (og vil fortsette å gjøre det på min andre stasjonære). Men Arch krever definitivt mer tid og oppmerksomhet enn jeg ønsker å bruke på en server. Ideelt sett ville jeg foretrekker å være i stand til å glemme server for en stund før en påminnelse email sier “um … Det er et par oppdateringer du bør se på, buddy.”

Plass er ikke gratis – og det er heller ikke plass

Muligheten til å migrere til Ubuntu var det faktum at jeg hadde kjørt ut av SATA porter, portene som kreves for å koble harddisker til resten av maskinen – at 7TB RAID array bruker mye av porter! Jeg hadde selv gitt bort mitt svært gamle 200 GB harddisk som det tok opp en av disse portene. Jeg advarer også om mottakeren at diskens SMART overvåking indikerte at det var upålitelig. Som en midlertidig løsning på mangelen på SATA-porter, Jeg hadde selv flyttet serverens OS til et sett med fire USB-pinner i en md RAID1. Crazy. Jeg vet. Jeg var ikke så glade om hastigheten. Jeg bestemte meg for å gå ut og kjøpe en ny pålitelig harddisk og en SATA utvidelseskort å gå med det.

Serverens primære Arch partition brukte omtrent 7 GB av disken. En stor del av det var en bytte fil, bufrede data og ellers diverse og unødvendige filer. Samlet den faktiske størrelsen av OS, herunder /hjem mappe, var bare om lag 2 GB. Dette fikk meg til å se inn i en super-rask SSD kjøre, tenker kanskje en mindre en kanskje ikke så dyrt. Det viste seg at det billigste ikke-SSD-stasjon jeg kunne finne faktisk koste mer enn en av disse forholdsvis små SSD. Yay for meg. 🙂

Valg? Woah?!

I valg av OS, Jeg hadde allerede besluttet det ville ikke være Arch. Ut av alle de andre populære distribusjoner, Jeg er mest kjent med Ubuntu og CentOS. Fedora var også en mulighet – men jeg hadde ikke seriøst ennå ikke vurdert det for en server. Ubuntu vant runden.

Den neste avgjørelsen jeg måtte gjøre skjedde ikke for meg før Ubiquity (Ubuntu installasjon wizard) spurte den av meg: Hvordan sette opp partisjoner.

Jeg var ny på å bruke SSD i Linux – Jeg er fullstendig klar over fallgruvene ved ikke å bruke dem riktig, hovedsakelig på grunn av risikoen for dårlig levetid hvis det brukes feil.

Jeg ønsker ikke å bruke en dedikert swap partisjon. Jeg har tenkt på å oppgradere serveren hovedkort / CPU / minne ikke så langt i fremtiden. Basert på at jeg bestemte meg for jeg vil sette swap i en swap fil på den eksisterende md RAID. Swap vil ikke være spesielt rask, men det eneste formålet vil være for den sjeldne anledningen når noe har gått galt, og minnet er ikke tilgjengelig.

Dette deretter forlatt meg å gi rotbane den fulle 60GB ut av en Intel 330 SSD. Jeg betraktet skille / hjem, men det virket bare litt meningsløst, gitt hvor lite ble brukt i det siste. Jeg først satt opp partisjonen med LVM – noe jeg nylig har gjort når jeg satt opp en Linux boks (virkelig, det er ingen unnskyldning for ikke å bruke LVM). Når det kom til den delen hvor jeg ville konfigurere filsystemet, Jeg klikket på drop-down og instinktivt valgt ext4. Så la jeg merke btrfs i samme liste. Henge på!!

Men en hva?

Btrfs (“smør-eff-ess”, “bedre eff-ess”, “bee-tree-eff-ess”, eller hva du har lyst på dagen) er et relativt nytt filsystem utviklet for å bringe Linux’ filsystem evner tilbake på sporet med dagens filsystem tech. Den eksisterende King-of-the-Hill filsystem, “ext” (gjeldende versjon kalt ext4) er ganske bra – men det er begrenset, fast i et gammelt paradigme (tenke på en helt ny F22 Raptor vs. en F4 Phantom med en halv-Jested forsøk på en ekvivalens oppgradering) og vil neppe kunne konkurrere på veldig lenge med nyere Enterprise filsystemer som Oracles ZFS. Btrfs har fortsatt en lang vei å gå, og regnes fortsatt eksperimentell (avhengig av hvem du spør, og hvilke funksjoner du trenger). Mange anser det å være stabil i grunnleggende bruk – men ingen kommer til å gi noen garantier. Og, Selvfølgelig, alle sier å lage og teste backup!

Mooooooo

Den mest grunnleggende forskjellen mellom ext og btrfs er at btrfs er en “Ku” eller “Kopi på Skriv” filsystem. Dette betyr at data er aldri bevisst overskrevet av en såkalt innvendige. Hvis du skriver en endring i en fil, btrfs vil skrive endringene til en ny plassering på fysiske medier, og vil oppdatere interne pekere til å referere til den nye plasseringen. Btrfs går et skritt videre ved at de interne pekere (referert til som metadata) er også Ku. Eldre versjoner av ext ville ha bare overskrevet data. Ext4 ville bruke en Journal for å sikre at korrupsjon ikke vil forekomme bør støpselet bli yanked ut på det mest inopportune øyeblikk. Tidsskriftet resulterer i et tilsvarende antall skritt som kreves for å oppdatere data. Med en SSD, den underliggende maskinvaren opererer en lignende ku prosessen uansett hva filsystemet du bruker. Dette er fordi SSD-disker ikke kan faktisk overskrive data – de har til å kopiere dataene (med endringene) til et nytt sted, og deretter slette den gamle blokken helt. En optimalisering i dette området er at en SSD ikke kan selv slette den gamle blokken, men heller rett og slett lage et notat til å slette blokken på et senere tidspunkt når ting ikke er så opptatt. Sluttresultatet er at SSD-disker passer veldig godt med en ku filsystem og ikke utføre så godt med ikke-ku filsystemer.

Å lage saker interessant, Ku i filsystemet går lett hånd i hånd med en funksjon kalt deduplisering. Dette tillater to (eller mer) identiske blokker av data som skal lagres ved hjelp av bare en enkelt kopi, sparer plass. Med ku, hvis en deduplicated filen endres, den separate twin vil ikke bli påvirket som den modifiserte filens data vil ha blitt skrevet til en annen fysisk blokk.

Ku i sin tur gjør snapshotting relativt enkelt å implementere. Når et øyeblikksbilde er gjort i systemet registrerer bare den nye snapshot som en duplisering av alle data og metadata i volum. Med ku, når det gjøres endringer, øyeblikksbildet data forblir intakt, og en konsekvent visning av filsystemet status på det tidspunkt øyeblikksbildet ble gjort kan opprettholdes.

En ny venn

Med ovenstående i tankene, særlig ettersom Ubuntu har gjort btrfs tilgjengelig som install-tid alternativet, Jeg skjønte det ville være et godt tidspunkt å dykke inn btrfs og utforske litt. 🙂

Part 2 kommer snart …

Dele
Friday, September 11th, 2009 | Forfatter:

Peace in the land of USB

Under a *nix operating system, having multiple partitions on a USB drive isn’t rocket science, it just works. I mitt tilfelle, my USB drive has two partitions because the first partition is a bootable Arch Linux installer.

I have Windows on a desktop at homemostly for gamingand many of my colleagues use it too. Since Windows doesn’t do very well with non-Windows partitions I figured I could create a FAT32 partition on the memory stick after the bootable Arch Linux partition. FAT32 er nesten allestedsnærværende og kan brukes på alle vanlige stasjonære operativsystemer i verden.

bleh

Dessverre fungerer det ikke rett utenfor flaggermusen. Tilsynelatende, Microsoft i deres uendelige visdom bestemte at minnepinner antas å ha en (og bare en) skillevegg. I virkeligheten finner Windows den første partisjonen og ignorerer deretter andre som tilfeldigvis er satt opp:

Please Format

Err, Nei, Jeg vil ikke at du skal formatere Arch Linux-installasjonspartisjonen

Trikset for å få det til å fungere er å lure Windows til å tro at enheten er ikke en vanlig USB-minnepinne, men kanskje en solid-state harddisk som tilfeldigvis er tilkoblet via USB. Ja jeg vet, dette er alvorlig dumt at Windows oppfører seg på denne måten. En solid-state harddisk er bare en enorm stor (og raskt) minnepinne tross alt!

I found a few sources on how to do this however I still had to figure out some things on my own. Specifically, the guides I found either skipped some steps or didn’t provide enough information on where to download the driver package.

This procedure involves manually changing hardware drivers and installingnon-signeddriversnot intended for your hardware”. I know someone is going to break their system and blame me so I say now that I take no responsibility for any damage you may do to your Windows system as a result of this. Read that again. 😛

Instructions

remove the highlighted text

click for larger version

Download and unzip the driver, originally created by Hitachi, her. Open the cfadisk.inf file in notepad (or your favourite plaintext editor), and find the section labeled [cfadisk_device]. Fjern delen som er uthevet til høyre:

Minimer (ikke lukk) redigereren og gå til skrivebordets ikoner – høyreklikk på Min datamaskin og velg Properties. Velg maskinvarefanen, og velg deretter [Device Manager]:

System Properties

Finn enheten under “Harddisker”, høyreklikk på minnepinnen og velg Properties:

Device Manager

Klikk på kategorien Detaljer og i rullegardinmenyen på den siden, å velge “Hardware Ids”. Klikk på den første linjen i listen over maskinvare-ID-er, og trykk Ctrl + C for å kopiere navnet:

USB Hardware Ids

Ikke lukk denne dialogboksen, gå tilbake til notisblokk (som ble minimert) og lim inn maskinvare-IDen der forrige innhold ble fjernet.

Changes pasted into notepad

Lagre filen i notisblokken og gå tilbake til enhetens dialogboksvindu. Klikk på “Sjåfør” fanen og klikk på [Update Driver…] knapp. I vinduene som dukker opp, å velge “Nei, ikke dette tNavn”; [Next] -> “Installer fra en liste eller a sspesifikk beliggenhet (Avansert)”; [Next] -> “Dikke søk. Jeg vil velge driveren som skal installeres.”; [Next] -> [Have Disk…].

Unsigned Drivers - Click Continue Anyway

Bla gjennom mappen der du har lagret den modifiserte filen CFADISK. Klikk [OK]. Du vil finne

det er en Hitachi Microdrive-driver som er oppført. Velg dette og klikk [Next]. Når advarselen

vises, klikk [YDet er]. En annen advarsel vil dukke opp angående et lignende problem (disse er “usignert” og “not intended for your hardware” advarsler jeg nevnte tidligere). Klikk [Cuansett Uansett]:

På dette tidspunktet anbefaler jeg å lukke alle dialogbokser relatert til oppsettet. Endelig, fjerne og sett minnepinnen på nytt i USB-porten, og du bør finne ut at de ekstra partisjonene på pinnen er tilgjengelige. I verste fall, trenger du kanskje fortsatt partisjonere disken men den harde delen er over. 🙂

Dele
onsdag, 22. april, 2009 | Forfatter:

Arch Linuxs installasjonsprosess er dokumentert på Arch wiki. Jeg anbefaler at personer som er ny med Arch prøver det utmerkede Nybegynnerguide i stedet for Offisiell Arch Linux Install Guide. Selv om begge wiki-oppføringene dekker lignende grunn, nybegynnerguiden gir mye mer relevant informasjon for de som er nye i systemet. Nybegynnerguiden er rettet mot desktopinstallasjon og, mens jeg installerer en server, Jeg vil overhode ikke gjennomgå installasjonen av det grafiske miljøet. Forutsatt at du følger installasjonen min, antar at jeg har fulgt nybegynnerguiden helt til og med installasjonen av sudo. Jeg installerte ssh-demon da, i stedet for under den første oppsettet.

Noen få små anbefalinger og merknader om installasjon:

  • Hvis du kan, kan du vurdere å bruke en USB-minnepinne til installasjonsprogrammet og holde den hendig for fremtidige installasjoner.
  • Jeg oppbevarer en kopi av min lokale “oppbevaringssted” av installerte applikasjoner på installasjonsminnepinnen. Når installasjonen er ferdig sparer jeg litt nedlasting og oppdateringstid ved å kopiere dette til den nye serverens / var / cache / pacman / pkg / folder. Arkivet på skrivebordet mitt er vanligvis 1,7 GB
  • For rc.conf, Sør-afrikanske passende regionale innstillinger er:
    LOCALE =”en_ZA.utf8″
    ZONE =”Afrika / Johannesburg”
  • Jeg har satt opp nettverket veldig enkelt, i følge guiden, og vil utvide nettverksoppsettet i et senere innlegg.
  • Som det er for en server, Min ikke-privilegerte bruker på serveren er bare en del av 3 grupper: hjul (for sudo), Oppbevaring, og brukere. En stasjonær bruker vil sannsynligvis være i mange flere grupper.

Jeg foretrekker å bruke et program som heter yoghurt i stedet for Archs standard pakkesjef. Yaourt har nøyaktig samme brukssyntaks som pacman bortsett fra at den støtter noen få ekstra alternativer. Det er faktisk en innpakningsapplikasjon i og med at den, på tur, bruker pacman. viktigere, yaourt støtter installasjon av applikasjoner fra Arch's GULL. Den GULL er et lagringssted for installasjonsskript bygget av Arch-brukere for Arch-brukere for enkelt å installere applikasjoner som ikke offisielt støttes av de viktigste Arch-depotene. Yaourt kan laste ned og installere applikasjoner fra AUR eller hovedlager med samme kommando, behandle AUR som “bare et annet depot”. Pacman støtter dessverre ikke dette.

En gang til, installasjonen er dekket av wiki. Jeg anbefaler den enkle ruten som er nevnt i wikien hvis du er ny på Arch. Det er for mye for tidlig til å gjøre det på den harde måten (også nevnt i wiki-oppføringen).

Når ferdig, oppdater systemet ditt ved å utgi den eneste kommandoen:

yaourt -Syu

ELLER

pacman -Syu

og følg de gitte anbefalingene.

Dele
Saturday, March 28th, 2009 | Forfatter:

Its amazing how much you can do by combining the small yet powerful commands Unix has available.

This little-used command, time, finally became useful today as a way to report the length of time that certain automated operations are running. In my example, I’m timing how long it takes to build the Linux kernel:

$ time rebuild-kernel26
...
couple-thousand-lines-of-scrolling-text
...
==> Finished making: kernel26 2.6.28.8-1 x86_64 (Sat Mar 28 17:19:52 SAST 2009)
real    62m21.994s
user    43m31.846s
sys     6m1.096s

Yup, that took a little over an hour to build. The values are:

  • realthe actual time elapsed while the command was running – 62 minutes
  • userthe amount of userland time the command used – 43 minutes
  • systhe amount of system time the command used – 6 minutes

(I was busy doing other things while this was happening which is why it took 62 minutes for the desktop to do (43+6=) 49 minutes-worth of work)

If you’re using the GNU version (most likely), it also gives you the option of displaying the results in a custom fashion. Mostly, this command could be useful in scripts where you need to report how long a task tookor maybe? just a geeky way to time something random. 😛

Dele
Kategori: linux  | Tags: , , , , , , ,  | Leave a Comment