Linux İşletim Sistemlerine Bakış & Ücretsiz Yazılımlarla Çözümler Kurtuluş Karasu, Sistem & Veri Depolama Uzmanı Turgut Özal Üniversitesi, Elektrik & Bilgisayar Mühendisliği May 27, 2014 1
Ajanda İşletim Sistemi nedir? Linux Nedir? Linux Tarihi Linux Dağıtımları Lisanslar, Özgür Yazılım Linux ile Sistem Çözümleri Linux Cluster Çözümleri Sanallaştırma Çözümleri Linux Installation Server (Ağ üzerinden otomatik kurulum) İşletim Sistemleri Kullanım Oranları 2
İşletim Sistemi nedir? İşletim sistemi aslında, bilgisayar üzerinde çalışan en önemli yazılımdır. Bilgisayar üzerinde, bilgisayar donanımının yönetiminden uygulama programlarının çalışmasına kadar bütün bir yapıyı sağlayan yazılımdır. İşletim sisteminin, klavyeden kullanıcı girdisini alıp derleyip, çıktının ekrana gönderilmesinden disk üzerindeki dosya ve dizinlerin idare edilmesine, sistemin güvenliğinin sağlanmasından farklı programların aynı anda birbirlerini etkilemeden çalışmasını sağlamaya kadar bir çok görevi vardır. Kullanım alanları Masaüstü Sunucu 3
Linux Nedir? Linux Tarihi Unix 1960 larda AT&T nin Bell Laboratuvarlarında başlayan Multics isimli bir işletim sisteminin devamı olarak 1970 lerin başında Dennis Ritchie ve Ken Thompson tarafından geliştirilen, C programlama dilinde yazılan UNIX işletim sistemi duyulmaya başlandıktan sonra üniversiteler ve araştırma kurumlarının ilgi odağı oldu. Linux un Gelişimi Kısa Tarihçe 1984: GNU projesi Richard Stallman tarafından başlatıldı. 1991: Linus Torvalds Linux ilk çekirdeğini oluşturur. Bu olaydan sonra İşletim sisteminin ismi Linux/GNU olarak adlandırılır. 1994: Linux 1.0 serisi kernel GPL lisansı altında yayınlanır. 4
Neden Linux? Maliyet: serbestçe dağıtılabilen ücretsiz bir işletim sistemidir. Herkesin ihtiyacı olan genel hazır programlar ücretsizdir. Açık kaynak kodlu (Open Source) olması, çalışan programların kaynaklarının incelemeye açık olması demektir. Hiç bir kanun ihlali olmadan istenen sayıda makineye kurulum yapılabilir. Viruslere karşı daha güvenli, kullanıcı modunda iken bulaşılan virusler sadece o kullanıcı bölgesini etkiler, haricindeki (root) bölümler etkilenmez. Düşük donanım gereksinimi Linux modüler bir mimariye sahiptir. İstenilen özellikler kolaylıkla eklenip çıkarılabilir. Linux istekler doğrultusunda değiştirilebilir ve uyarlanabilir. 5
Linux Dağıtımları Linux aslında işletim sisteminin çekirdeğe verilen ismidir. Dağıtımlar, bu çekirdeğe GNU projesinde hazırlanan yazılımları ekleyerek sunulan alternatif işletim sistemleridir. Yazılımlar GNU tarafından sağlandığı için Linux tabanlı işletim sistemleri GNU/Linux olarak adlandırılır. En çok bilinen ve kullanılan dağıtımlar: RedHat, CentOS, Fedora, Suse, Debian, Ubuntu, Oracle Linux, Pardus gibi 6
Dağıtımlar Arasındaki Farklar Nelerdir? Kurulum yöntemlerindeki farklar İçerdikleri paketlerdeki farklar Sistem yönetimindeki farklar Grafik yönetim araçları gibi farklılıklar olabilir 7
Lisanslar, Özgür Yazılım Lisans: Kullanıcıların yazılım üzerindeki haklarıdır. Kullanıcıların yazılımlar üzerinde değişiklik yapabilmeleri için yazılımın kaynak kodunun açık olması gerekmektedir. GPL (GNU Public Licence): Genel kamu lisansıdır. Yazılımın kaynak kodları açık bir şekilde serbestçe dağıtılmasına izin verir. GPL kullanımının getirdiği tek kısıtlama, yazılım üzerinde değişiklik yapıp dağıtabilmek için yapılan değişikliklerle birlikte kaynak kodun verilmesi zorunluluğudur. 8
Nerede Linux Kullanılıyor? Bilgisayarlar Cep telefonları (Ör: Android) Tabletler (Ör: Meego) E-kitap okuyucular (Ör: Kindle) Akıllı ocaklar (Ör: TEBA) Saatler (Ör: Casio) Video oynatıcılar ADSL Modemler (Ör: Airties) Süper bilgisayarlar (Ör: IBM S/390) Apple PowerPC 9
Linux ile Sistem Çözümleri MS Office'den OpenOffice'e ve LibreOffice'e Göç DHCP Sunucu, NTP Sunucu, DNS Sunucu, FTP Sunucusu Linux Cluster Çözümleri Sanallaştırma Çözümleri Dosya Sunucusu (File Server) Monitoring, Loglama ve Raporlama Mail Sunucu Apache, MySQL Yedekleme(Backup) ve Kurtarma(Restore) Mesajlaşma, Konferans Sunumları Firewall Load Balance / Yük Dağıtımı 10
Linux Cluster Çözümleri Cluster (Kümeleme) nedir? Bir grup bilgisayarın sanki tek bir çalışan bilgisayar gibi eş güdümlü olarak çalışmasıdır. Cluster Çeşitleri High Availability (YüksekErişilebilirlik): Sistemde olası tek bir noktada oluşabilecek hatalara (single point of failure) karşı önlem alma mekanizmasıdır. Load Balancing (Yük Dağıtımı ): Öncelikli amacı performansı arttırmaktır ayrıca yüksek erişebilirlik hizmetini de vermeyi hedeflemektedir. High Performance Computing(Yüksek performans hesaplaması): Cluster içerisindeki bilgisayarlara hesaplama görevlerini paralel dağıtarak yüksek performans elde edilebilmesidir, genellikle bilimsel hesaplamalar için kullanılmaktadır. 11
Cluster'a Giriş 12
Cluster Mimarisi Cluster domain: Mysql_cluster Nodes: MysqlAktif( node1) MysqlAktif(node2) Service: Mysql #/etc/hosts 10.10.10.11 node1 10.10.10.12 node2 13
High Availability (YüksekErişilebilirlik) Mysql-Cluster Sunucu cluster_ip_adres: 10.10.10.13 Aktif Pasif 14
High Availability (YüksekErişilebilirlik) 10.10.10.13 Mysql-Cluster Sunucu Pasif Aktif 15
Linux Tabanlı Sanallaştırma Sanallaştırma Nedir? Gerçek (fiziksel) kaynakların (CPU, RAM, Ağ, Disk) mantıksal olarak bölünmesi veya yalıtılmasıdır. Bu sanal kaynakları kullanacak yeni (sanal) makinelerin kurulması için gerekli altyapının sağlanması, Oluşturulan yeni (sanal) makinelerin yönetilmesi için gerekli yönetici, kullanıcı ve programlama arayüzlerinin sağlanması. 16
Kernel-based Virtual Machine (KVM) Linux Çekirdeği nin bir parçası: Donanım üzerinde çalışan linux çekirdeğinin modern bir hipervizör olarak çalışmasını sağlayan çekirdek altsistemi. Hipervizör(Hypervisor): Gerçek kaynakları sanallaştıran ve bu kaynakları kullanan sanal ortamları yöneten yazılım. 17
Kernel-based Virtual Machine (KVM) Mimarisi Sunucu kaynaklarının yüzde 80 daha fazla kullanımı İhtiyaç duyulması anında hızlı bir şekilde yeni bir sunucu oluşturulabilir. Maliyetlerde yüzde 50'ye varan kazanç. 18
Sanallaştırmanın Temel Yararları Fiziksel sunucuların sayısını azaltma Veri merkezi için gerekli olan altyapı ihtiyacını azaltma (enerji, soğutma, ağ geçiş portları, alan) Sunucular tek bir merkezden yönetilebildiği için yönetimsel ek yükü azaltma Yeni sunucuları kolayca mevcut ortama ekleme kabiliyeti (yeni bir fiziksel sunucuyu eklemek günler hatta haftalar sürerken, sanallaştırma teknolojileri ile yeni bir sanal sunucu oluşturmak sadece birkaç dakika alır.) Donanım Bağımsızlığı - sanal sunucular donanım bağımsız herhangi bir sunucu üzerinde çalışabilir. Konsolidasyon sayesinde daha çevreci bir veri merkezi & sunucu ortamı 19
Sanallaştırmanın Türleri Sunucu Sanallaştırma - Birçok fiziksel sunucuyu, tek bir fiziksel sunucu üzerinde çalıştırılmasını sağlama. Masaüstü Sanallaştırma - Masaüstü bilgisayarlarının sanallaştırılmasını, veri merkezine taşınmasını, ve son kullanıcılara LAN veya WAN üzerinden sunulmasını sağlayan teknolojidir. Ağ Sanallaştırma - Ağ sanallaştırma ile ağ paylaştırılır. Sanal ağ ortamlarının bileşenleri arasında NIC(Network Interface Card), anahtar (switch), ağ depolama araçları, sanal ağ taşıyıcıları ve ağ ortamları yer alır. Veri Depolama Sistemleri Sanallaştırma Veri Depolama sistemlerinizin, sanal depolama sistemine konsolide edilmesidir. 20
Bir fiziksel makine üzerinde kaç tane sanal makine çalıştırılabilir? Bir fiziksel makine üzerinde kaç tane sanal makine çalıştırılabileceği, birçok sunucu performans sorularında olduğu gibi, yerine göre değişmektedir. Hypervisor inizin desteklemesi ve sunucu kaynaklarınızın (RAM, CPU, Disk ve Ağ) yeterli olması halinde tek bir fiziksel makine üzerinde birçok sanal makine çalıştırabilirsiniz. 21
P2V (Fizikselden Sanal a) dönüştürme P2V uygulamaları fiziksel sunucuya bağlanır ve fiziksel sunucudan tüm verileri sanal sunucu üzerindeki sanal diske kopyalar, işletim sistemindeki sürücüleri sanal sürücüler ile değiştirir ve yeni bir sanal makine oluşturulur. 22
Linux Installation Server PXE, (Preboot EXecution Environment), (booting computers via a network) bilgisayarda saklama birimlerine ihtiyaç olmadan, ağ kartları vasıtasıyla bilgisayarın açılmasını sağlayan bir ortamdır. PXE ortamı, DHCP ve BOOTP protokollerini kullanarak ağa bağlanırken, TFTP protokolü yardımıyla da gerekli önyükleme programını yükleyerek işletim sisteminin açılmasını sağlar. 23
Linux Installation Server PXE Boot Sunucu Konfigürasyonu i. DHCP Sunucu ii. iii. iv. TFTP (Trivial File Transfer Protocol) Sunucu NFS-FTP-HTTP Sunucu Otomatik kurulum konfigürasyon dosyasının hazırlanması 24
İşletim Sistemleri Kullanım Oranları Kaynak: IDC (server, Q1 2012), Gartner (mobile, May 2012). 25
İşletim Sistemleri Kullanım Oranları Anket Özeti Geçen sene yaptığım anket çalışmasının sonuçlarının özeti aşağıdaki gibidir. 26
Kurtuluş Karasu kurtulus@kurtuluskarasu.com 27