Linux

Linux Rsync ile Yerel veya Uzak Sunucular Arasında Senkronizasyon işlemleri

rsync, uzak ya da lokal olarak dosya transferi işlemlerini gerçekleştiren ve bu işlemlerde kullandığı algoritma sayesinde daha hızlı sonuç sağlayan bir senkronizasyon aracı olarak ifade edilebilir. Açık kaynak kodlu ve GNU Genel Kamu Lisans’ı altında dağıtılan rsync, bir çok Linux dağıtımında öntanımlı olarak yüklü gelmektedir. Ayrıca, bir çok dağıtımın paket yöneticisinden de kolayca kurulabilmektedir. Kaynak ve hedef arasında kopyalama yapmadan önce, bir algoritma üzerinden dosyalar arasındaki farkları tespit eden rsync, hedef’e sadece değişikliğe uğramış ya da tamamen yeni olan dosyaları aktarır. Bu sayede kopyalama süreci hızlandırılmış olur.

  • Tüm bir dizinin ya da dosya sisteminin yedeklenebilmesi
  • Sembolik ve Hard linklerin, dosya ve dizin izinlerinin, sahip ve grup bilgilerinin hedefte muhafaza edilebilmesi
  • Root yetkisine gereksinim duyulmaması
  • Lokal sistem üzerinde yedekleme/senkronizasyon
  • Lokal sistemden, uzaktaki sisteme yedekleme/senkronizasyon
  • Uzaktaki sistemden, lokal sisteme yedekleme/senkronizasyon
  • Network üzerinden transfer için ssh kullanabilme
  • Rsync daemon modu ile sunucu desteği
  • Exclude anahtarı ile spesifik dosya/dizinlerin, dosya tiplerinin hariç tutulabilmesi.

Redhat tabanlı sistemlerde öntanımlı olarak bulunmaktadır. Bu sebeple ayrıca kuruluma ihtiyaç duyulmamaktadır.

Debian ve Ubuntu gibi dağıtımların paket depolarında bulunmaktadır. Dolayısı ile “apt-get” ile kolayca kurulabilmektedir.
(continue reading…)

Loading


Network File System (NFS)

NFS  (Network  File  System),  1984  yılında  Sun  Microsystems  tarafından  geliştirilmişbir protokoldür. Uzaktaki makine üzerinde bulunan dosya sistem(lerin)i, farklı bir işletim sistemine  bağlayabilmeniz  (mount)  için  geliştirilmiştir.  Ve  bunu  yaparken,  kullanıcının sanki yerel bir dosya sistemi üzerindeymiş gibi çalışmasını sağlar.

TCP / IP’nin evriminin başlarında, kullanıcının ağ üzerinden başka bir makineye erişmesine izin vermek için bazı araçlar oluşturulmuştu. Telnet gibi remote access protocols (uzaktan erişim protolleri), kullanıcının başka bir bilgisayarda oturum açmasına ve buradaki kaynakları kullanmasına izin verdi. File Transfer Protocol  (FTP), birinin uzak bir makineden bir dosyayı kendi dosyasına kopyalamasına ve düzenlemesine izin verdi.

Ancak, bu çözümlerin hiçbiri, bir kullanıcının uzak bir makinedeki bir dosyaya, yerel bir dosyanın kullanıldığına benzer bir şekilde erişmesine izin verme kurallarına uymuyordu. Sun bu ihtiyacı karşılamak için Network File System (Ağ Dosya Sistemi)’i (NFS) yarattı. NFS, yerel ve uzak bir dosya arasındaki ayrımı ortadan kaldırmak amacıyla özel olarak tasarlanmıştır. Bir kullanıcı için, uygun kurulum yapıldıktan sonra, uzak bilgisayardaki bir dosya, kullanıcının yerel bilgisayarındaki bir sabit disk üzerindeymiş gibi kullanılabilir. Sun ayrıca, hem Sun tarafından hem de diğer şirketler tarafından yapılan donanımların birlikte çalışabilmesini sağlamak için NFS’yi özellikle satıcıdan/üreticiden bağımsız olacak şekilde üretti.

NFS, klasik TCP / IP client/server modelini izler. Bir sabit disk veya belirli bir bilgisayarın depolama aygıtındaki dizin, yönetici tarafından paylaşılan bir kaynak olarak ayarlanabilir. Bu kaynağa daha sonra paylaşılan sürücü(shared drive) veya directory denir ve client makinede yerel bir dizin gibi görünmesini sağlayarak bilgisayarlardan erişilebiliriz.

NFS, çalışmasını tanımlayan üç ana bileşen içeren bir mimari kullanır. External Data Representation (XDR) standardı, verilerin client ve server arasındaki değişimlerde nasıl temsil edildiğini tanımlar. Remote Procedure Call (RPC) protokolü, uzak makinelerde procedure çağırma yöntemi olarak kullanılır. Ardından, bir dizi NFS prosedürü ve işlemi çeşitli istekleri yerine getirmek için RPC kullanarak çalışır. Mount protokolü, kaynakları yukarıda belirtildiği gibi bağlamak için kullanılır.

NFS’nin en önemli tasarım hedeflerinden biri performanstı. Açıkçası, uzaktaki bir makineye yerelmiş gibi bir dosya ayarlasanız bile, gerçek okuma ve yazma işlemleri bir ağ üzerinde ilerlemek zorunda. Genellikle bu sadece bir bilgisayar içerisine veri göndermekten daha fazla zaman alır, bu yüzden protokolün kendisinin mümkün olduğunca “yalın ve ortalama” olması gerekiyordu. Bu karar, çoğu dosya aktarım protokolünün yaptığı gibi güvenilir TCP yerine TCP / IP’de aktarım için güvenilir olmayan User Datagram Protocol’nün (UDP) kullanılması gibi bazı ilginç kararlara yol açmıştır. Bu da protokolün bir bütün olarak nasıl çalıştığı üzerinde ilginç sonuçlara sahiptir.

NFS için bir diğer önemli tasarım amacı basitti (elbette performansla ilgili). NFS sunucularının durumsuz olduğu söyleniyor, bu protokolün hangi sunucuların hangi clientler tarafından hangi dosyaların açıldığını takip etmesine gerek kalmayacak şekilde tasarlandığı anlamına geliyor. Bu, isteklerin birbirinden bağımsız olarak yapılmasına izin verir ve bir sunucunun karmaşık kurtarma prosedürlerine ihtiyaç duymadan çökmeler gibi olaylarla incelikle başa çıkmasını sağlar. Protokol ayrıca, isteklerin kaybolması veya çoğaltılması durumunda dosya bozulması yaşanmayacak şekilde tasarlanmıştır.
(continue reading…)

Loading


systemctl

systemd, Linux için bir sistem ve servis yöneticisidir ve SystemV ve Upstart’ın yerini almaktadır. systemd, servis yapılandırmasını ve davranışını Linux dağıtımları arasında birleştirmeyi amaçlar.
Systemd’nin amacı; bilgisayardaki sistem ve servislerin çalışmasını organize etmektir. Yani modern linux işletim sisteminde başlama (startup) ve sunucu (server) proseslerini yöneten sistem olarak systemd sistem kaynaklarının, arkaplan (daemon) ve diğer süreçlerin (process) etkinleştirilmesi için bir mekanizma sağlar. Bu yönetimi, systemctl, journalctl, notify, analyze, cgls, cgtop, loginctl ve nspawn olarak adlandırılan araçlar sayesinde gerçekleştirir.

Arkaplan süreçleri (daemons) adından da anlaşılabileceği gibi başlatıldıklarında görevlerini yürütmek üzere arka planda bekler veya çalışırlar. Bu süreçler tipik olarak işletim sistemi yüklenirken (boot) başlatılırlar ve sistem kapatılana ya da manuel olarak durdurulana kadar arkaplanda (background) çalışmayı sürdürürler. Genel bir ilke olarak arkaplan süreç adları genellikle d harfi ile sonlanır (sshd – ssd deamon gibi).

Systemd ortamında aşağıdaki kavramlar yaygın olarak kullanılır:
• Daemon: başlatıldıklarında görevlerini yürütmek üzere arka planda bekleyen veya çalışan süreçler.
• Socket: Bağlantıları dinlemek için arkaplan süreçleri tarafından kullanılır. Yerel ve uzak istemciler için ana iletişim kanalıdır. Süreçler tarafından yaratılırlar.
• Service: Genellikle bir ya da daha çok sayıda arkapan sürecine işaret eder Servisi başlatma/durdurma işlemi genellikle sistem durumunda (state) kalıcı bir değişikliğe neden olur.

Eskiden init dediğmiz ve işletim sistemi kernel yüklemesinden sonra çalışan ve PID (Process ID) 1 olan süreçlerle yönetilmekte idi. Çekirdek kendini başlattığı (belleğe yüklendiği, çalışmaya başladığı ve aygıt dosyaları, veri yapıları ve benzeri şeyleri başlattığı zaman) ve kullanıcı seviyeli bir program olan initsürecini başlattığında, kendi üstüne düşen açılış işlemlerini bitirmiş olur. Bundan dolayı init her zaman için ilk süreçtir ve süreç numarası da daima 1’dir. init süreci /etc/inittab dosyasını okuyup sistemin hangi Run Level’dan başlayacağına karar verirdi. Aşağıda /etc/inittab dosyasından bir kesit sunulmaktadır.

# Default runlevel. The runlevels used by RHS are:
# 0 – halt (Do NOT set initdefault to this)
# 1 – Single user mode
# 2 – Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 – Full multiuser mode
# 4 – unused
# 5 – X11
# 6 – reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

Buradaki id:3:initdefault: satırı bizim işletim sistemimizin RunLevel 3 ‘den başlayacağını göstermektedir. Red Hat sistemlerde RunLevel’lar

• 0 – halt (Sistemi kapatmak –poweroff veya halt- için kullanılan runlevel)
• 1 – Single user mode (Sistemi kurtarmak için kullanılan ve network ayarlarının aktive edilmediği tekli kullanıcı mode’u. Bazı yerlerde S veya s olarak da adlandırılır.
• 2 – Multiuser NFS olmadan çoklu kullanıcı mode’u (Bu runlevel 3. Runlevel ile genel olarak aynıdır. Tek fark network ayarlarını içermemesidir.)
• 3 – multiuser mode (Network ayarlarını nda aktive edildiği ve genellikle kullanılan RunLevel’dır.
• 4 – kullanılmıyor.
• 5 – X11 (Runlevel 3 e ek olarak görsel ekranın- ki biz buna X veya X11 de deriz- da başlatıldığı runlevel. Runlevel 3’den sonra en çok tercih edilen runlevel’dır.)
• 6 – reboot (Sistemin kapatılıp tekrar açıldığında kullanılan RunLevel’dır.

İnit süreci ön tanımlı runlevel’ı ayarladıktan sonra sistemde /etc/rc.d/init.d/ altında bulunan ve rpm paketleri içinde gelen servis scriptlerini (bunlar bir shell scripttir!) çalıştırır. Örnek olarak eğer runlevel 3 de isek ve sshd servisi çalışacaksa bunun başlangıç scripti /etc/rc.d/init.d/sshdaltında yer almakta. Bunun runlevel 3 de çalışmasını da /etc/rc.d/rc3.d/S55sshd scripti sağlamakta idi. Buradaki S harfi bunun start edilleceği, 55 ise başlangıç sırasını belirtmektedir.

# ls -la /etc/rc.d/rc3.d/S55sshd lrwxrwxrwx 1 root root 14 Jun  6  2011 /etc/rc.d/rc3.d/S55sshd -> ../init.d/sshd

(continue reading…)

Loading


Şifresiz SSH Bağlantısı Kurmak

Linux üzerinde SSH Key kurulumunu anlatmadan önce SSH sisteminin ne olduğundan bahsedelim. SSH (Secure Shell), güvenli veri iletimi amacıyla şifrelenmiş bir ağ protokolüdür.  SSH ile birbirine bağlanmış iki bilgisayar arasındaki veri aktarımı bu şifrelenmiş, güvenli ağ protokolü üzerinden yapılır. SSH aşağıda belirtilen temel  unsurları sağlar;

  • authentication / Kimlik denetimi
  • encryption / Şifreleme
  • Integrity / Bütünlük.

SSH temel tanımlar;

  • SSH1, Tatu Ylönen tarafından geliştirilen ilk orjinal SSH ürünü.
  • SSH-1 protokolü temel alınarak geliştirilmiştir. SSH2, Tatu Ylönen tarafından geliştirilen SSH-2 ürünü.
  • SSH protocol 1.SSH-2,
  • SSH protocol 2 . Günümüzde yaygın kullanımda olan ve kullanımıtavsiye edilen ssh sürümü. IETF SECSH çalışma grubu tarafından standartlarıbelirlenmiştir.

SSH bağlantı sağladığınızda, her bağlatı yenilendiğinde karşılaştığız şifre işlemini pratik bir şekilde çözmek, kolay ve güvenli bir tanımlama işlemi oluşturmak için bu yazıda SSH anahtarı nasıl oluşturacak ve doğrulayacağımıza anlatacağım.

OpenSSH Nedir?

OpenBSD Project tarafından açık kaynak olarak geliştirilmiş, ağ erişimi (ssh tunneling) aşamasında tüm trafiğin şirelenmesi, saldırılardan korunması için artırılmış güvenlik önlemleri, yeni yetenekler ve metodlar barındıran bir SSH protokolü versiyonudur. SSH, SCP, SFTP gibi bağlantı operasyonları, SSAdd, SSH-Keydign, SSH-Keyscan ve SSH-Keygen gibi anahtar yönetimi, SSHD, SFtp-Server ve SSH-Agent gibi server taraflı oluşumları kapsar. Sunucu birden fazla kişinin ya da aracın erişimine açılacağı durumlar için en güvenli yöntemdir.

Public Key Authentication

Bu yapıda, “gizli (private key)” ve onu tamamlayan “açık (public)” olmak üzere iki anahtar bulunur. Kullanıcı “gizli (private)” anahtarını bağlanmak için kullanacağı sistemde, “açık (public)” anahtarını da bağlanacağı sistemde bulundurur. Bağlantı sırasında bu iki anahtarın eşleşmesiyle, sisteme giriş yapılmış olur. Bu sayede sunucu şifreleri paylaşılmadan, sadece sisteme girmesi gereken kullanıcıların public keyleri eklenerek giriş izni verilebilir.
(continue reading…)

Loading


Bonding nedir? Linux İşletim Sistemlerinde Nic Bonding Yapılandırması

Bugünkü yazımda, Linux İşletim Sisteminde Network yedekliliği (redundant links, fault tolerance) olarak bilinen Linux Bonding konusu hakkında bilgilendirme yapacağım.

Bonding Linux için kullanılan terimdir. Diğer işletim sistemlerinde Teaming (Windows), Network dünyasındaTrunking olarak bilinmektedir.
Linux bonding
Bonding birden fazla Network interface (NIC)’in bir mantıksal gurup olarak tek bir interface olarak kullanablmemize olanak sağlar.

Bonding yedeklilik sağladığı gibi, band genişliğini (load balancing networks) artırmak için de kullanılabilmektedir.
Linux interface bonding
Bu işlemleri Windows altında donanım üreticileri tarafından sağlanan yazılımlarla yapmak mümkün. Bir takım kısıtlarla birlikte sorunsuz denilebilecek seviyede çalışabilmektedir. Aslen araya bir balancer koymadığınız takdirde yazılım bile olsa tam olarak yük dengelemesi yapılamamaktadır. Donanım üreticilerinin bu konudaki yazılımlarınada ihtiyaç duymamaktayız. Linux bunu kendi yeteneği ile yapabilmektedir.

Bonding modülü Linux işletim sistemi çekirdeği desteği ile gelir. Ethernet kartı standartı olarak IEEE 802 kullanılır.

Bonding modülünün 7 farklı şekilde çalışma yapısı bulunur, Kullanılan Mod’a bağlı olarak Bonding Layer 2 veya Layer 3 OSI Network katmanında kullanılmakta. (continue reading…)

Loading


Openfiler Nedir? Nasıl kurulur? Nasıl Kullanılır?

Openfiler Nedir?

Merhabalar bu yazımda sırasıyla openfiler’ın ne olduğundan, kurulumundan ve openfiler üzerinde iscsi depolama alanı yapılandırıp daha sonra  başka bir linux sunucuya bağlayıp kullanacağız.

Openfiler, SAN/NAS hizmeti için hazırlanmış açık kaynak kodlu network depolama işletim sistemidir.

Openfiler’da fileserver, share disk, sanal harddisk ve türlü amaçlar için alanlar oluşturabilir ve yönetimini yapabiliriz. Openfiler, disklerimizden oluşmuş toplam kapasitemizi ihtiyacımıza göre alanlara ayırıp kullanmamızı sağlar.

Web tabanlı kolay kullanımlı arayüzü üzerinden kullanıcı hesaplarını, disk hacimlerini, disk kullanım kotalarını kısacası oldukça kapsamlı bir şekilde ağ depolama hizmetini her yönüyle kolayca kullanabilir ve ayarlayabilirsiniz.

Kısa bir tanıtımdan sonra openfiler kurulumuna gelecek olursak;

Openfiler’ı herhangi bir sunucuya kurabileceğiniz gibi vmware veya benzeri sanal araçlarada kurabilirsiniz.

Openfiler kurulumu için gerekli minumum kaynaklar aşağıdaki gibi.

Openfiler 0
(continue reading…)

Loading


  • Sertifikasyon



  • Etiketler

  • Topluluklar

                     
                     
  • Copyright © 1996-2010 Mustafa Bektaş Tepe. All rights reserved.
    Türkçeleştirme Blogizma | AltyapıWordPress