Tag-Arhīvs » linux «

Svētdiena, 4 augusts, 2013 | autors:

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.

Tomēr, 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” vai “man fsck”, you have to inputfsck.ext4help” vai “man fsck.ext4”. 🙂

akcija
Svētdiena, 4 augusts, 2013 | autors:

Vēsture

Daudz kas ir mainījies kopš es pēdējo reizi minēts manu personisko serveri – tas ir pieaudzis par lēcienus un robežas (tas tagad ir 7TB md RAID6) un tas nesen tika pārbūvēta ar Ubuntu Serveris.

Arka nekad nav bijis kļūda. Arch Linux jau iemācīja man tik daudz par Linux (un turpinās to darīt par manu citu desktop). Bet Arch noteikti prasa vairāk laika un uzmanības, nekā es gribētu pavadīt uz servera. Ideālā gadījumā es gribētu, lai varētu aizmirst par serveri, bet līdz brīdim atgādinājuma e-pastu saka “um … tur ir pāris atjauninājumus, jums vajadzētu apskatīt, draugs.”

Telpa nav bezmaksas – un neviena no tām nav vietas

Iespēja pāriet uz Ubuntu, bija tas, ka man bija beigušies SATA ostām, ostām, kas vajadzīgi, lai izveidotu savienojumu cietos diskus ar pārējo datoru – ka 7TB RAID masīvs izmanto daudz ostu! Man bija pat atdot manu ļoti Vīrietis 200GB cieto disku, jo tas paņēma vienu no šīm ostām. Es arī brīdināja saņēmējam, ka disks ir SMART uzraudzība norādījusi, ka ir neuzticama. Kā pagaidu risinājums, lai trūkumu SATA ostu, Man pat bija pārcēlies uz servera OS komplektu ar četrām USB atmiņas kartes, kas MD RAID1. Traks. Es zinu. Man bija ne pārāk laimīgs par ātrumu. Es izlēmu iet ārā un pirkt jaunu uzticamu cieto disku un SATA izplešanās karti, lai iet ar to.

Servera galvenais Arch partition tika izmantojot aptuveni 7GB uz diska. Liela daļa no tā bija mainīt fails, kešatmiņā datus un citādi Dažādi vai nevajadzīgu failus. Kopumā faktisko lielumu no OS, ieskaitot /mājas mape, bija tikai apmēram 2GB. Tas pamudināja mani izpētīt super-ātru SSD vadīt, domāšana varbūt mazāko varētu nebūt tik dārgi. Izrādījās, ka lētākais ne-SSD disku es varētu atrast faktiski izmaksas vairāk nekā vienu no šiem salīdzinoši nelielu SSD. Yay par mani. 🙂

Izvēle? Woah?!

Izvēloties OS, Es gribētu jau nolēmu, ka nebūtu arka. No visiem citiem tautas sadalēm, Es esmu visvairāk pazīstami ar Ubuntu un CentOS. Fedora bija arī iespēja – bet man nebija nopietni vēl uzskatīt to par serveri. Ubuntu uzvarēja kārtu.

Nākamais lēmums man bija darīt nenotika ar mani, kamēr Visuresme (Ubuntu uzstādīšanas vednis) lūgusi to no manis: Kā izveidot starpsienas.

Es biju jauns, lai, izmantojot SSD Linux – Es esmu labi informēti par neizmanto tos pareizi nekļūdīga, galvenokārt sakarā ar to risks sliktā ilgmūžību ja ļaunprātīgi.

Es negribēju, lai izmantot speciālu swap partīciju. Es plānoju uz modernizāciju servera mātesplatē / CPU / atmiņas ne pārāk tālā nākotnē. Balstoties uz šo es nolēmu es likšu mijmaiņas mijmaiņas failu uz esošo md RAID. Mijmaiņas nebūs īpaši ātri, bet tās vienīgais mērķis būs šim retu reizi, kad kaut kas ir nogājis greizi, un atmiņa nav pieejama.

Šis tad atstāja mani, lai dotu saknes ceļš pilnīgu 60GB no Intel 330 SSD. Es uzskatīju atdalot / mājās, bet tas tikai likās nedaudz bezjēdzīgi, ņemot vērā, cik maz tika izmantots pagātnē. Es vispirms izveidot nodalījumu ar LVM – kaut ko es esmu nesen dara, kad es izveidoju Linux kaste (patiešām, nav attaisnojums neizmantot LVM). Kad tā ieguva uz to daļu, kur es varētu konfigurēt filesystem, Es noklikšķinājis nolaižamo un instinktīvi izvēlas Ext4. Tad es pamanīju btrfs vienā sarakstā. Uzgaidīt!!

Bet to, kas?

Btrfs (“sviests-eff-ESS”, “labāk eff-ESS”, “Bišu koku eff-ESS”, vai kāds jums iedomātā dienā) ir salīdzinoši jauna failsistēmu izstrādāts, lai panāktu Linux’ filesystem spējas atpakaļ uz ceļa ar pašreizējo filesystem tech. Esošais King-of-the-Hill failsistēmu, “ext” (Pašreizējā versija sauc ext4) ir diezgan labs – bet tas ir ierobežots, iestrēdzis vecajā paradigmā (domā par pavisam jaunu F22 Raptor vs. an F4 Phantom ar pusi Jested mēģinājums ar ekvivalences jauninājums) un ir maz ticams, lai varētu konkurēt ļoti ilgi ar jaunāku Enterprise failu sistēmas, piemēram, Oracle ZFS. Btrfs vēl ir garš ceļš ejams, un joprojām tiek uzskatīts eksperimentāls (atkarībā no tā, kas jums jautāt un ko funkcijas jums ir nepieciešams). Daudzi uzskata, ka tas ir stabils bāzes izmantošanai – bet neviens gatavojas veikt nekādas garantijas. Un, protams, visi saka, lai veiktu un pārbaudītu backups!

Mooooooo

Visbūtiskākā atšķirība starp ext un btrfs ka btrfs ir “Govs” vai “Kopiju par Rakstīt” failsistēmu. Tas nozīmē, ka dati ir faktiski nekad apzināti pārrakstīt filesystem ir iekšējie. Ja jūs rakstīt izmaiņas failā, btrfs rakstīt izmaiņas uz jaunu vietu uz fizisko nesēju un atjauninās iekšējās norādes, lai atsauktos uz jauno vietu. Btrfs iet soli tālāk, ka šie iekšējie norādes (tekstā metadatiem) Ir arī Govs. Vecākas versijas ext būtu vienkārši pārrakstīti dati. Ext4 varētu izmantot žurnālu, lai nodrošinātu, ka korupcija nenotiks būtu AC spraudnis tiek yanked pie visvairāk nepiemērotā brīdī. Žurnāla rezultātā līdzīgā vairākiem pasākumiem nepieciešams, lai atjauninātu datus. Ar SSD, pamatā aparatūra darbojas līdzīgā govi procesa vienalga, ko failsistēmu jūs izmantojat. Tas ir tāpēc, ka SSD diski nav reāli pārrakstīt datus – tie ir kopētu datus (ar izmaiņām) uz jaunu vietu, un pēc tam izdzēsiet veco bloku pilnībā. Šajā jomā optimizācija ir, ka SSD, iespējams, nav pat izdzēst veco bloku, bet gan vienkārši pierakstiet, lai izdzēstu bloku vēlāk, kad lietas nav tik aizņemti. Gala rezultāts ir tāds, ka SSD diski fit ļoti labi ar govi filesystem un neveic, kā arī ar ne-govi failu sistēmas.

Lai jautājumiem interesants, Govs filesystem viegli iet roku rokā ar funkciju sauc deduplication. Tas nodrošina divu (vai vairāk) identiskas bloki datus jāuzglabā izmantojot tikai vienu kopiju, ietaupot telpa. Ar govs, ja deduplicated fails ir modificēts, atsevišķa dvīņu netiks ietekmēta modificētu failu dati būs rakstīts uz citu fizisko bloku.

Govs savukārt padara snapshotting salīdzinoši viegli īstenot. Kad momentuzņēmums tiek veikts sistēma tikai reģistrē jaunās aktuālās kā dublēšana visu datu un metadatu ietvaros apjoma. Ar govs, ja ir veiktas izmaiņas, aktuālās dati paliek neskarts, un konsekventu skats filesystem statusu brīdī momentuzņēmums tika veikta var uzturēt.

Jauns draugs

Ar iepriekš prātā, it kā Ubuntu ir veikts btrfs pieejams kā instalēt laika opciju, Es sapratu, ka būtu labs laiks, lai nodoties btrfs un izpētīt mazliet. 🙂

Daļa 2 Drīzumā …

akcija
Friday, September 11th, 2009 | autors:

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. Manā gadījumā, 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 is almost ubiquitous and is usable on every common desktop operating system in the world.

Bleh

Unfortunately it doesn’t work straight off the bat. Apparently, Microsoft in their infinite wisdom decided that memory sticks are supposed to have one (and only one) partition. In reality Windows finds the first partition and then ignores any others that happen to be set up:

Please Format

Err, no, I do not want you to format my Arch Linux installation partition

The trick to getting it working is to fool Windows into thinking the device is nav a regular USB memory stick but perhaps a solid-state hard disk which happens to be connected via USB. Yes I know, this is seriously stupid that Windows behaves this way. A solid-state hard disk is just a whopping big (and fast) memory stick after all!

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, šeit. Open the cfadisk.inf file in notepad (or your favourite plaintext editor), and find the section labeled [cfadisk_device]. Remove the section highlighted on the right:

Minimize (don’t close) the editor and go to your desktop iconsright-click on My Computer and select Properties. Select the hardware tab and then select [Device Manager]:

System Properties

Find the device underDisk drives”, right-click your memory stick and select Properties:

Device Manager

Click the Details tab and in the dropdown box on that page, selectHardware Ids”. Click the first line in the list of Hardware IDs and press Ctrl+C to copy the name:

USB Hardware Ids

Don’t close this dialog, go back to notepad (which was minimised) and paste the hardware ID into where the previous content was removed.

Changes pasted into notepad

Save the file in notepad and go back to the device’s property dialog window. Click theDrivertab and click the [Update Driver…] button. In the windows that pop up, selectNo, not this time”; [Next] -> “Install from a list or a specific location (uzlabots)”; [Next] -> “Don’t search. I will choose the driver to install.”; [Next] -> [Have Disk…].

Unsigned Drivers - Click Continue Anyway

Browse to the folder where you have saved the modified cfadisk.inf file. Click [OK]. You will find

there is a Hitachi Microdrive driver listed. Select this and click [Next]. When the warning

appears, click [Yes]. Another warning will pop up regarding a similar issue (these are theunsigned” un “not intended for your hardwarewarnings I mentioned earlier). Click [Continue Anyway]:

At this point I recommend closing all the dialog boxes related to the setup. Finally, remove and re-insert the memory stick into your USB port and you should find that the extra partitions on the stick are accessible. In the worst-case scenario, you might still need to partition the disk however the hard part is over. 🙂

akcija
Wednesday, April 22nd, 2009 | autors:

Arka Linux’s installation process is documented on the Arch wiki. I recommend that persons new to Arch try the excellent Beginner’s Guide instead of the Official Arch Linux Install Guide. Though both wiki entries cover similar ground, the Beginner’s Guide gives a lot more relevant information for those new to the system. The Beginner’s Guide is aimed at desktop installation and, as I’m installing a server, I won’t be going through the installation of the graphical environment at all. Assuming that you’re following my installation, assume that I’ve followed the Beginner’s Guide right up to and including the installation of sudo. I installed the ssh daemon afterwards rather than during the initial setup however.

A few small recommendations and notes regarding installation:

  • If you can, consider using a USB memory stick for the installer and keep it handy for future installations.
  • I keep a copy of my localrepositoryof installed applications on my installer memory stick. Once installation is finished I save a bit of download and update time by copying this to the new server’s /var/cache/pacman/pkg/ folder. The repository on my desktop is typically 1.7GB
  • For the rc.conf, South African-appropriate regional settings are:
    LOCALE=en_ZA.utf8
    TIMEZONE=Africa/Johannesburg
  • I’ve set up the network very simply, according to the guide, and will be expanding on the network setup in a later post.
  • As it is for a server, my non-privileged user on the server is only part of 3 groups: wheel (for sudo), storage, and users. A desktop user will likely be in many more groups.

I prefer using an application called jogurts instead of Arch’s default package manager. Yaourt has the exact same usage syntax as pacman except that it supports a few extra options. It is actually a wrapper application in that it, in turn, uses pacman. Importantly, yaourt supports installation of applications from Arch’s AUR. The AUR is a repository of installation scripts built by Arch users for Arch users to easily install applications that are not officially supported by the main Arch repositories. Yaourt can download and install applications from AUR or the main repositories with the same command, treating the AUR asjust another repository”. Pacman unfortunately does not support this.

Again, the installation is covered in the wiki. I recommend the easy route mentioned in the wiki if you’re new at Arch. Its too much too soon to do it the hard way (also mentioned in the wiki entry).

When done, update your system by issuing the single command:

yaourt -Syu

OR

pacman -Syu

and follow the given recommendations.

akcija
Saturday, March 28th, 2009 | autors:

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. 😛

akcija