Tag-Archive for » linux «

Sunday, August 04th, 2013 | Author:

I had a power outage affect my server’s large MD Pagsalakay 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.

Gayunman, 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” o “man fsck”, you have to inputfsck.ext4help” o “man fsck.ext4”. 🙂

magbahagi
Sunday, August 04th, 2013 | Author:

Kasaysayan

Karamihan ay nagbago mula noong huling ko ang aking nabanggit personal na server – ito ay lumago sa pamamagitan ng leaps at hangganan (ito ay mayroon na ngayong 7TB MD RAID6) at kamakailan lamang ito ay itinayong muli sa Ubuntu Server.

Arko ay hindi kailanman isang pagkakamali. Arch Linux ay na itinuro sa akin kaya magkano ang tungkol sa Linux (at patuloy na gawin ito sa aking iba pang mga desktop). Ngunit Arch Talagang nangangailangan ng mas maraming oras at atensyon kaysa Gusto kong gastusin sa isang server. May perpektong ko gustong sa magagawang kalimutan ang tungkol sa mga server para sa isang habang hanggang sa isang paalala sa email sabi “Um … mayroong ilang mga update ay dapat kang tumingin sa, buddy.”

Space ay hindi libre – at hindi rin ay espasyo

Ang pagkakataon na mag-migrate sa Ubuntu ay ang katotohanan na ako ay maubusan ng SATA port, ang port na kinakailangan upang ikonekta ang matapang na drive upang ang natitirang bahagi ng ang computer – 7TB na salakayin array ay gumagamit ng maraming port! Kahit na ako ay ibinigay ang layo ng aking napaka lumang 200GB hard disk bilang ito kinuha up ng isa sa mga port. Ako din binigyan ng babala ang tatanggap na ang disk ni Matalino Pagmamanman ng nakasaad dito ay hindi kapani-paniwala. Bilang isang pansamantalang workaround sa kakulangan ng SATA port, Kahit na ako ay lumipat na OS ng server sa isang hanay ng mga apat na sticks USB sa isang MD RAID1. Bangaw. Alam ko. Ako ay hindi masyadong masaya tungkol sa bilis. Ako nagpasya upang pumunta out at bumili ng isang bagong maaasahang hard drive at isang SATA card Pagpapalawak upang pumunta sa mga ito.

Pangunahing Arch ng server ay partisyon gamit ang tungkol sa 7GB ng disk. Ang isang malaking tipak ng iyon ay isang magpalitan file, naka-cache na data at kung hindi man ay halu-halo o hindi kinakailangang mga file. Pangkalahatang ang aktwal na laki ng OS, kabilang ang /bahay folder, lamang tungkol sa 2GB. Ito sinenyasan sa akin upang tumingin sa isang napakabilis na SSD magmaneho, iniisip marahil ng isang mas maliit na ang isa ay maaaring hindi kaya mahal. Ito ay naka-out na ang cheapest non-SSD drive ay maaaring ko mahahanap ang aktwal na gastos mas sa isa sa mga relatibong maliit na SSDs. Yay para sa akin. 🙂

Pagpili? Woah?!

Sa pagpili ng OS, Gusto ko na nagpasya hindi ito magiging Arch. Wala ng lahat ng iba pang mga sikat na distribusyon, Ako ay pinaka-pamilyar sa Ubuntu at CentOS. Fedora noon din ang isang posibilidad – ngunit hindi ako ay sineseryoso pa itinuturing na ito para sa isang server. Ubuntu nanalo ang pag-ikot.

Ang susunod na desisyon ko ay nagkaroon upang gumawa ay hindi mangyayari sa akin hanggang Pagka-nasa-lahat-ng-pook (Installation wizard ng Ubuntu) tinanong ko: Paano i-set up ang partitions.

Ako ay bago sa paggamit ng SSDs sa Linux – Ako na rin malaman ng mga pitfalls ng hindi gumagamit ang mga ito ng tama, karamihan dahil sa kanilang panganib ng mahinang kahabaan ng buhay kung maling maggamit.

Hindi ko nais na gumamit ng isang nakalaang makipagpalitan ng partisyon. Plano ko sa pag-upgrade motherboard / CPU / memory ng server ay hindi masyadong malayo sa hinaharap. Batay sa na ako nagpasya ko bang ilagay ang makipagpalitan sa isang makipagpalitan ng file sa umiiral na isang bigla at hindi inaasahang pagsalakay ng MD. Ang makipagpalitan ay hindi maging partikular na mabilis nito ngunit tanging layunin ay para na bihirang pagkakataon kapag ang isang bagay ay nawala maling at ang memorya ay hindi magagamit.

Ito pagkatapos ay iniwan sa akin upang bigyan ang root path ang buong 60GB out ng isang Intel 330 SSD. Ko itinuturing na naghihiwalay / home ngunit tila lamang ito ng kaunti walang kahulugan, ibinigay gaano kaliit ay ginagamit sa nakalipas. Ako unang-set up ang partisyon na may LVM – isang bagay na kamakailan ko ang ginagawa tuwing ako magse-set up ng isang Linux box (talaga, walang dahilan na hindi gamitin ang LVM). Kapag nakuha ito sa bahagi kung saan Gusto ko i-configure ang mga filesystem, Ko click ang drop-down at nang katutubo napiling ext4. Pagkatapos Napansin ko btrfs sa parehong listahan. Manatili!!

Ngunit kung ano ang isang?

Btrfs (“mantikilya-eff-ess”, “mas mahusay na-eff-ess”, “abeha-tree-eff-ess”, o anumang Fancy mo sa araw) ang isang relatibong bagong filesystem binuo upang dalhin ang Linux’ filesystem kakayahan bumalik sa track na may kasalukuyang filesystem tech. Ang umiiral na King-of-the-Hill filesystem, “EXT” (ang kasalukuyang bersyon na tinatawag na ext4) ay medyo magandang – ngunit ito ay limitado, Natigil sa isang lumang tularan (sa tingin ng isang bagong tatak F22 Raptor vs. isang F4 parang multo may isang half-jested pagtatangka sa isang upgrade pagkapareho) at ay malamang na hindi magagawang upang makipagkumpetensya para sa napakatagal na may mas bagong filesystems Enterprise tulad ng Oracle ni ZFS. Btrfs pa rin ay may isang mahabang paraan upang pumunta at itinuturing pa rin ang pang-eksperimentong (depende sa kung sino ang magtanong at kung ano ng kailangan mo). Maraming isaalang-alang ito upang maging matatag para sa basic na paggamit – ngunit walang saysay na tao ay pagpunta sa gumawa ng anumang mga garantiya. At, oo naman, ang lahat ay sinasabi na upang gumawa at subukan ang mga backup!

Mooooooo

Ang pinaka-pangunahing pagkakaiba sa pagitan ng EXT at btrfs na btrfs ay “Baka” o “Kopyahin sa Isulat” filesystem. Nangangahulugan ito na ang data ay hindi aktwal na sadyang mapapatungan ng internals ang filesystem. Kung sumulat ka ng pagbabago sa isang file, btrfs ay isulat ang iyong mga pagbabago sa isang bagong lokasyon sa pisikal na media at maa-update ang panloob na pointer upang sumangguni sa bagong lokasyon. Btrfs napupunta isang hakbang karagdagang sa na mga panloob na mga payo (tinutukoy bilang metadata) ay rin Baka. Mas lumang bersyon ng EXT ay may lamang-o-overwrite ang data. Ext4 gumamit ng Journal upang matiyak na hindi mangyayari ang katiwalian dapat ang AC plug yanked sa pinaka-hindi napapanahon sandali. Ang mga journal na mga resulta sa isang katulad na bilang ng mga hakbang na kinakailangan upang i-update ang data. Gamit ang isang SSD, ang kalakip na hardware ay nagpapatakbo ng isang kaparehong proseso Cow kahit na ano filesystem gumagamit ka ng. Ito ay dahil SSD drive ay hindi maaaring aktwal na patungan ang mga data – kailangan nila upang kopyahin ang data (gamit ang iyong mga pagbabago) sa isang bagong lokasyon at pagkatapos burahin ang lumang block ganap. Ang isang pag-optimize sa lugar na ito ay na SSD isang hindi maaaring kahit na burahin ang lumang bloke ngunit sa halip lamang gumawa ng isang nota upang burahin ang mga bloke sa ibang pagkakataon kapag ang mga bagay ay hindi kaya busy. Ang katapusan ng resulta ay na SSD drive magkasya napakahusay na may isang filesystem Cow at hindi gumaganap pati na rin sa mga hindi Cow filesystems.

Upang gumawa ng mga bagay na kawili-wili, Cow sa ang filesystem madaling napupunta kamay sa kamay na may isang tampok na tinatawag na Deduplication. Ito ay nagpapahintulot sa dalawang (o higit pa) magkakahawig na mga bloke ng data na naka-imbak ng paggamit lamang ng isang kopya, pagse-save espasyo. Gamit Cow, kung ang isang deduplicated file ay binagong, hiwalay twin hindi maaapektuhan ng mga data sa nabagong file ay na-nakasulat sa isang iba't ibang mga pisikal na block.

Cow ay ginagawang snapshotting medyo madaling ipatupad. Kapag ang isang snapshot ng system ang Itinatala lamang ang bagong snapshot bilang isang duplicate ng lahat ng data at metadata sa loob ng volume. Gamit Cow, kapag may mga pagbabagong ginawa, ay mananatiling buo ang data ng snapshot, at isang pare-parehong view ng katayuan ng filesystem sa oras na snapshot ang ginawa panatilihin.

Ang isang bagong kaibigan

Sa itaas sa isip, lalo na kung Ubuntu btrfs magagamit bilang isang-oras na pagpipilian ng pag-install, Naisip ko ito ay isang mahusay na oras upang sumisid in sa btrfs at galugarin ng kaunti. 🙂

Bahagi 2 paparating …

magbahagi
Friday, September 11th, 2009 | Author:

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. Sa aking kaso, 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 hindi 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, dito. 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 (Advanced)”; [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” at “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. 🙂

magbahagi
Wednesday, April 22nd, 2009 | Author:

Arko 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 yaourt 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. Ang 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.

magbahagi
Saturday, March 28th, 2009 | Author:

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

magbahagi