Tag-Archive for » linux «

ahad, ogos 4, 2013 | Pengarang:

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, Saya telah ia boot tanpa array besar supaya saya boleh berjalan fsck secara manual.

Walau bagaimanapun, 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: fsck –help 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 of “fsck –help” atau “man fsck”, you have to inputfsck.ext4help” atau “man fsck.ext4”. 🙂

Kongsi
ahad, ogos 4, 2013 | Pengarang:

Sejarah

Banyak telah berubah sejak saya nyatakan terakhir saya pelayan peribadi – ia telah berkembang dengan pesat (ia kini mempunyai 7TB md RAID6) dan ia telah baru-baru ini telah dibina semula dengan Ubuntu Server.

Arch tidak adalah satu kesilapan. Arch Linux telah mengajar saya banyak tentang Linux (dan akan terus berbuat demikian pada desktop saya yang lain). Tetapi Arch pasti memerlukan lebih banyak masa dan perhatian daripada yang saya ingin menghabiskan pada pelayan. Sebaik-baiknya, saya memilih untuk dapat melupakan pelayan untuk sementara waktu sehingga e-mel peringatan kata “um … terdapat beberapa kemas kini anda perlu melihat, buddy.”

Ruang tidak bebas – dan tidak adalah ruang

Peluang untuk berhijrah ke Ubuntu adalah hakikat bahawa saya telah kehabisan SATA pelabuhan, pelabuhan yang diperlukan untuk menyambung cakera keras ke seluruh komputer – bahawa array RAID 7TB menggunakan banyak pelabuhan! Saya telah pun diberikan saya sangat lama cakera keras 200GB kerana ia mengambil salah satu pelabuhan. Saya juga memberi amaran kepada penerima bahawa cakera ini SMART pemantauan menunjukkan ia tidak boleh dipercayai. Sebagai Workaround sementara kekurangan pelabuhan SATA, Saya telah pun berhijrah OS pelayan kepada satu set empat batang USB dalam md an RAID1. Crazy. Saya tahu. Saya tidak terlalu gembira tentang kelajuan. Saya membuat keputusan untuk keluar dan membeli memandu baru dipercayai keras dan kad pengembangan SATA untuk pergi bersamanya.

Partition Arch utama server telah menggunakan kira-kira 7GB cakera. Sebahagian besar yang merupakan swap file, data cache dan fail sebaliknya pelbagai atau tidak perlu. Keseluruhan saiz sebenar OS, termasuk /rumah folder, hanya kira-kira 2GB. Ini mendorong saya untuk melihat ke dalam super cepat SSD memandu, berfikir mungkin salah satu yang lebih kecil mungkin tidak begitu mahal. Ia ternyata bahawa memandu murah bukan SSD saya dapat mencari sebenarnya kos lebih daripada satu SSDs ini agak kecil. Yay untuk saya. 🙂

Pilihan? Woah?!

Dalam memilih OS, Saya sudah memutuskan ia tidak akan Arch. Daripada semua pengagihan lain yang popular, Saya paling akrab dengan Ubuntu dan CentOS. Fedora juga kemungkinan – tetapi saya tidak lagi dianggap serius untuk pelayan. Ubuntu memenangi pusingan.

Keputusan seterusnya saya terpaksa membuat tidak berlaku kepada saya sehingga Keleluasaan (Wizard pemasangan Ubuntu) bertanyakan saya: Bagaimana untuk menubuhkan sekatan.

Saya baru menggunakan SSDs dalam Linux – Saya juga sedar perangkap tidak menggunakan mereka dengan betul, kebanyakannya disebabkan risiko mereka panjang umur miskin jika disalahgunakan.

Saya tidak mahu untuk menggunakan partition swap khusus. Saya merancang untuk menaik taraf motherboard / CPU / memori pelayan tidak terlalu jauh di masa depan. Berdasarkan itu, saya memutuskan saya akan meletakkan swap ke dalam fail swap pada RAID md sedia ada. Swap tidak akan terutamanya cepat tetapi tujuan satunya adalah untuk majlis yang jarang berlaku apabila sesuatu silapnya dan memori yang tidak boleh didapati.

Ini kemudian meninggalkan saya untuk memberi jalan akar 60GB penuh daripada suatu Intel 330 SSD. Saya dianggap memisahkan / rumah tetapi ia hanya seolah-olah sedikit sia-sia, memandangkan bagaimana sedikit telah digunakan pada masa lalu. Saya mula-mula ditubuhkan partition dengan LVM – sesuatu yang saya baru-baru ini telah melakukan setiap kali saya membuka kotak Linux (benar-benar, tiada alasan untuk tidak menggunakan LVM). Apabila ia sampai ke bahagian di mana saya akan mengkonfigurasi filesystem, Saya klik drop-down dan naluri dipilih ext4. Kemudian saya perasan btrfs dalam senarai yang sama. Hang pada!!

Tetapi apa yang?

Btrfs (“mentega-EFF-ess”, “lebih baik EFF-ess”, “lebah-pokok-EFF-ess”, atau apa sahaja yang anda suka pada hari) adalah sistem fail yang agak baru dibangunkan dalam usaha untuk membawa Linux’ keupayaan sistem fail kembali ke landasan dengan teknologi semasa filesystem. Raja-the-Hill yang sedia ada sistem fail, “ext” (versi semasa dipanggil ext4) adalah cukup baik – tetapi ia adalah terhad, terperangkap dalam paradigma lama (memikirkan satu jenama baru F22 Raptor vs. an F4 Phantom dengan cubaan separuh bergurau pada menaik taraf persamaan) dan tidak mungkin dapat bersaing untuk masa yang lama dengan sistem fail Enterprise baru seperti ZFS Oracle. Btrfs masih mempunyai cara yang lama untuk pergi dan masih dianggap eksperimen (bergantung kepada siapa anda bertanya dan apa ciri-ciri yang anda perlukan). Ramai yang menganggap ia menjadi stabil untuk kegunaan asas – tetapi tiada siapa yang akan membuat apa-apa jaminan. Dan, kursus, semua orang mengatakan untuk membuat dan menguji sandaran!

Mooooooo

Perbezaan yang paling asas antara ext dan btrfs adalah bahawa btrfs adalah “Lembu” atau “Salinan di Tulis” filesystem. Ini bermakna bahawa data tidak pernah sebenarnya sengaja ditimpa oleh internals sistem fail. Jika anda menulis perubahan kepada fail, btrfs akan menulis perubahan anda ke lokasi baru pada media fizikal dan akan memaklumkan kepada petunjuk dalaman untuk merujuk ke lokasi baru. Btrfs pergi selangkah ke hadapan dalam bahawa mereka petunjuk dalaman (dirujuk sebagai metadata) adalah juga Lembu. Lama versi ext akan mempunyai hanya ditimpa data. Ext4 akan menggunakan Jurnal untuk memastikan bahawa rasuah tidak akan berlaku palam AC harus tepian tercabut pada masa yang paling hell. Keputusan jurnal dalam bilangan yang sama langkah-langkah yang diperlukan untuk mengemaskini data. Dengan SSD, perkakasan asas mengendalikan proses lembu yang sama tidak kira apa sistem fail anda menggunakan. Ini adalah kerana pemacu SSD sebenarnya tidak boleh overwrite data – mereka perlu menyalin data (dengan perubahan) ke lokasi baru dan kemudian memadam blok lama sepenuhnya. Satu pengoptimuman di kawasan ini adalah bahawa SSD yang mungkin tidak memadam blok lama tetapi sebaliknya hanya membuat nota untuk memadam blok pada suatu masa kemudian apabila perkara yang tidak begitu sibuk. Hasilnya adalah bahawa pemacu SSD sesuai dengan baik dengan sistem fail lembu dan tidak melakukan juga dengan sistem fail bukan lembu.

Untuk membuat perkara-perkara yang menarik, Lembu dalam filesystem mudah seiring dengan ciri-ciri yang dipanggil deduplication. Ini membolehkan dua (atau lebih) blok data yang sama akan disimpan menggunakan hanya satu salinan tunggal, ruang penjimatan. Dengan lembu, jika fail deduplicated diubah suai, berkembar yang berasingan tidak akan terjejas sebagai data fail diubah suai akan telah ditulis ke blok fizikal yang berbeza.

Lembu seterusnya membuat snapshotting agak mudah untuk melaksanakan. Apabila gambar dibuat sistem semata-mata rekod snapshot baru sebagai pertindihan semua data dan metadata dalam kelantangan. Dengan lembu, apabila perubahan dibuat, data snapshot kekal utuh, dan pandangan yang konsisten status filesystem pada masa gambar itu dibuat boleh dikekalkan.

Seorang rakan baru

Dengan di atas dalam fikiran, terutama sebagai Ubuntu telah dibuat btrfs disediakan sebagai pilihan memasang masa, Saya rasa ia akan menjadi masa yang baik untuk menyelam ke btrfs dan meneroka sedikit. 🙂

Bahagian 2 datang tidak lama lagi …

Kongsi
Friday, September 11th, 2009 | Pengarang:

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. Dalam kes saya,, 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 tidak 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, di sini. 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” dan “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. 🙂

Kongsi
rabu, April 22nd, 2009 | Pengarang:

Arch 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 yogurt 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.

Kongsi
Saturday, March 28th, 2009 | Pengarang:

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

Kongsi
kategori: linux  | Tags: , , , , , , ,  | Tinggalkan komen