EST566B - İLERİ LİNUX DÖNEM PROJESİ



Benzer belgeler
Cluster i Linux'ta Kümeleme Özgür Yazılım ve Açık Kaynak G 2006 Ali Erdinç Köroğlu

Ağ Yönetiminin Fonksiyonel Mimarisi

İşletim Sistemlerine Giriş

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Linux Dosya ve Dizin Yapısı

1 WINDOWS SERVER 2012 GENEL BAKIŞ 1 Giriş 1 Bu Kitapta 5 Çıkış Hikâyesi 6 Sürümler 7

NFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr

Sun Solaris Jumpstart Sistemi

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

Mobil Cihazlardan Web Servis Sunumu

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

Veritabanı. Ders 2 VERİTABANI

İŞLETİM SİSTEMLERİ. (Operating Systems)

INFOSAFE BİLİŞİM TEKNOLOJİLERİ

Windows Depolama Sunucusu 2008 Windows Storage Server 2008 Çözümü. INFOSAFE BİLİŞİM TEKNOLOJİLERİ TİCARET LİMİTED ŞİRKETİ

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

Windows Server 2003 sistemde oluşabilecek hataları giderebilmemiz için bize bir çok araç sunmaktadır. Bunlar:

Cisco 881 Router ve AirLink ES4X0, WAN Failover Tanımı

WiFi RS232 Converter Sayfa 1 / 12. WiFi RS232 Converter. Teknik Döküman

Üst Düzey Programlama

Temel Linux Eğitimi 1., 2. ve 3. Bölümler

OPC Data Access (DA) Temelleri

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.

LİNUX İŞLETİM SİSTEMİNİN KÖPRÜ MODUNDA ÇALIŞTIRILMASI VE GÜVENLİK DUVARI İŞLEMLERİ

MIRACLE DATA WORKS KURULUM DOKÜMANI

Windows Server 2012: Sanallaştırmanın ötesine geçin. Oğuz Pastırmacı IT Pro Teknolojileri Yöneticisi Microsoft Türkiye

Linux altında komut satırında...

Windows Server 2012 DHCP Kurulum ve Yapılandırma

Sanal Makineler ve Linux Konteynerlerin Performans Karşılaştırması

Büyük, Dağıtık, Veri Yoğunluklu Uygulamalarda Programlama Paradigmaları

Oracle 12c Flex Cluster - Flex ASM

.: Linux Kullanıcıları Derneği. III. Linux ve Özgür Yazılım Şenliği Mayıs Milli Kütüphane Ankara :.

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemi. BTEP205 - İşletim Sistemleri

ÖĞRENCİ LABORATUARLARI İÇİN OPTİMUM ÇÖZÜMLER

HP PROCURVE SWITCHLERDE 802.1X KİMLİK DOĞRULAMA KONFİGÜRASYONU. Levent Gönenç GÜLSOY

Küme Bilgisayarlarda PBS Kuyruk Sistemi

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi

Türkiye Linux Kullanıcı Grubu NFS & NIS. Kerem ERZURUMLU. kerem@linux.org.tr. 1. Linux ve Özgür Yazılım Şenliği.

TCP/IP. TCP (Transmission Control Protocol) Paketlerin iletimi. IP (Internet Protocol) Paketlerin yönlendirmesi TCP / IP

Logsign Hotspot. Güvenli, izlenebilir, hızlı ve. bağlantısı için ihtiyacınız olan herşey Logsign Hotspot da!

Security Configuration Wizard ile güvenliği artırmak

Hızlı Sistem Kurulumu ve Yönetimi İçin Yeni Bir Yaklaşım: SUSE Stüdyo

Linux Dosya Yapısı. Eren BAŞTÜRK.

IPCop ile Ağ Güvenliği ve Yönlendirme. Kerem Can Karakaş.

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

Windows Server 2012 Active Directory Kurulumu

Çalışma Grupları Eğitimleri. TÜBİTAK ULAKBİM / ANKARA 5-9 Nisan 2010

FRAGnStein PC ye İlk Kurulum ve Konfigürasyon Klavuzu

Sorun Giderme. Genel. Disk. Aygıt Sürücüleri 3

BioAffix Ones Technology nin tescilli markasıdır.

Sabit ve Taşınabilir Diskler BÖLÜM-2 Pata Diskler İçin Master-Slave Ayarları Disk Biçimlendirme Harici Diskler Olası Sabit Disk Arızaları RAID

Açık Kod VPN Çözümleri: OpenVPN. Huzeyfe ÖNAL

UFS SNAPSHOT. Hazırlayan: Asiye Yigit Agustos

Grid Bilgi Sistemleri (Grid Information Systems)

Bazı Cisco Router Modelleri: Cisco 1720 Router

Apache üzerinden Red Hat 5 yüklenmesi

Windows 2000 veya XP kurarken dosya sistemini seçmeniz gerekir. Ya FAT32 dosya sistemini kullanırsınız ya da NTFS.

PHP 1. Hafta 1. Sunum

Kurumsal Güvenlik ve Web Filtreleme

Bilgi Servisleri (IS)

Kurumsal Güvenlik ve Web Filtreleme

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

Ayni sistem(host) üzerinde IPC. Ağ(network) aracılığı ile IPC

İşletim Sistemlerine Giriş

FreeBSD Erişim Kontrol Listeleri

Sunucu İşletim Sistemini Ayarlamak ve Yönetmek

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

FortiGate & FortiAP WiFi Controller

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2. İçerik. IP ICMP MAC Tracert

Gündem. VLAN nedir? Nasıl Çalışır? VLAN Teknolojileri

sunucu uygulaması Devrim Sipahi

Free Cooling (Tibbo Ethernet Modüllü)

BOOT PROCES (SÜRECĐ)

Kategori:Allplan->Teknik Destek ve Kurulum->SSS_Allplan_2016_Server_Lisans_Kurulumu

Ağ Temelleri. Murat Ozdemir Ondokuz Mayıs Üniversitesi Bilgi İşlem Daire Başkanı 15 Ocak Ref: HNet.23

Solving Solutions. Esnek Disk Depolama Sistemleri

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

İstemci Yönetimi ve Genel Yazdırma Çözümleri

MOBIL UYGULAMA GELIŞTIRME

Yeni kullanıcı hesabı açmak ya da varolan hesaplar üzerinde düzenlemeler yapmak.

Hızlı Başlangıç Kılavuzu

PostgreSQL Veritabanı Sunucusu. HOT, VACUUM ve BGWRITER

PureSystem DeepDive Kaan R. SOYGÜR PROSİSTEM

BLM 6196 Bilgisayar Ağları ve Haberleşme Protokolleri

Sun Solaris Sunucular için Felaket Kurtarma (DR-Disaster Recovery) Çözümleri

İşletim Sistemleri (Operating Systems)

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Computer Architecture. RAID: (Redundant Array of Independent/Inexpensive Disks)

BM-311 Bilgisayar Mimarisi

Gökhan AKIN ĐTÜ/BĐDB Ağ Grubu Başkanı ULAK/CSIRT. Sınmaz KETENCĐ ĐTÜ/BĐDB Ağ Uzmanı

AHTAPOT Merkezi Güvenlik Duvarı Yönetim Sistemi Kontrol Paneli

Kaspersky Open Space Security: Release 2. İşletmeniz için birinci sınıf bir BT güvenliği çözümü

III. ULAKNET Eğitim Çalıştayı. Üniversiteler Arası Yüksek Erişilebilirlik. Ali Erdinç Köroğlu Necdet Yücel

NicProxy Registrar AWBS Modül Kurulumu Versiyon 1.0

İşletim Sistemlerine Giriş

Temel Bilgi Teknolojileri I

Transkript:

T. C. İSTANBUL TEKNİK ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ EST566B - İLERİ LİNUX DÖNEM PROJESİ Talat ÖZORAL 709051002 23.03.2006 İSTANBUL EST566B Talat ÖZORAL 1

İÇİNDEKİLER Bölüm 1 - Genel Bilgiler...2 1.1 - Paralel Dosya Sistemleri...2 1.1.1 - Parallel Virtual File System...3 1.1.2 - Lustre...3 1.2 - Lustre Nedir?...4 1.3 - Metadata dosya sistemi ve Metadata Sunucuları...11 1.4 - Lustre nin Network Bağımsızlığı...12 1.5 - Lustre Administrasyonu...14 1.6 - Lustre Global Namespace...14 1.6.1 - Lustre Global Namespace Filtresi......15 1.7 - Metadata ve Dosya girdi-çıktı performansı geliştirmeleri...16 1.8 - Gelişmiş Güvenlik...18 Bölüm 2 - Teknik Bilgiler...19 2.1 - Lustre Temini ve Kurulumu...19 2.2 - Lustre nin hızlı konfigürasyonu...20 2.2.1 - llmount.sh betiği...20 2.3 - Mevcut Konfigürasyon Toollarını kullanmak...22 2.4 - Kurulum sonrası temizlik...25 2.5 - Lustre yi kaynak koddan itibaren inşa etmek...25 2.6-0-config ile Lustre mount işlemi...26 2.7 - Lustre kurulumunun test edilmesi...27 2.8 - Lustre Debugging...28 2.8.1 - Debugging Programları...28 2.8.2 - Lustre Debug Mesajları ve alt sistemler...28 2.8.3 - Lctl içerisindeki Lustre debug_daemon un kullanımı...29 2.8.4 - lctl programı...30 Bölüm 3 - Özet...31 Kaynakça...32 EST566B Talat ÖZORAL 2

BÖLÜM 1 GENEL BİLGİLER 1.1 - Paralel Dosya Sistemleri Günümüzde bazı uygulamaların sık sık büyük miktarlarda veri okuması ve bunları diske yazması gerekir. Bu işlem bir hesaplamanın en yavaş adımıdır. Bunun için hızlı sabit sürücüler kullanmak yararlı olur ancak bunların da yeterli olmadığı zamanlar vardır. İşlemci gücü ne kadar hızlanırsa hızlansın, diskten okuma ve özellikle de diske yazma aşamaları halen bir darboğaz oluşturmaktadır denebilir. Bu sorun, özellikle, bir fiziksel disk bölümü tüm düğümler arasında paylaştırıldığında (örneğin, NFS kullanılarak) ortaya çıkar ve buna Linux kümelerinde sık rastlanır. İşte paralel dosya sistemleri de bu durumlarda yarar sağlar. Paralel dosya sistemleri bir dosyadaki verileri G/ç düğümleri olarak adlandırılan, kümedeki birden çok düğüme bağlı birkaç disk üzerine dağıtır. Bir program bir dosyayı okumayı denediğinde, bu dosyanın küçük bölümleri birkaç diskten paralel olarak okunur. Bu, herhangi bir disk denetleyicisi üzerindeki yükü azaltır ve disk denetleyicisinin daha çok isteği işlemesini sağlar. (PVFS, açık kaynak paralel dosya sistemi için iyi bir örnektir; standart IDE sabit diskleri kullanan Linux kümelerinde 1Gb/sn'den daha iyi disk performansı sağlanmıştır.) Yüksek performanslı hesaplama kümelerinde (HPC High Performance Computing), sistem mimarı üç ana dosya sistemi kategorisinden birini seçmek durumundadır. Bunlar, Network File System (NFS), Storage Area Network (SAN), ve paralel dosya sistemleridir. NFS, genellikle aralarında kullanımı en kolay olan ve Linux ile çalışan sistem ve network adminlerinin yaygın tercihidir. Ancak, NFS geniş kümeleme sistemlerinde yetersiz kalmaktadır. SAN dosya sistemleri ise yüksek miktarda dosya işlenmesini sağlar ve genellikle fiber optik sistemler ile kullanılır. Bu yüzden SAN sisteminin eksisi, yüksek maliyetli olmasıdır. SAN sistemlerinde SAN a bağlı her düğümün bir fiber destekli Host Bus Adaptörüne (HBA) sahip olması gerekir. Bu adaptör sayesinde bir fiber network üna bağlanılabilir. Paralel dosya sistemlerinde ise, storage ünitesine bağlı birkaç düğüm vardır. Bunlara I/O düğümleri (I/O nodes) denir. Bu düğümler, kümelenmeyi sağlar ve network ün geri kalan kısmına hizmet ederler. Bu sayede SAN a oranla maliyeti azalttığı gibi, birkaç düğüm kullanarak büyük dosyaları saklayan storage a erişimi kolaylaştırır. Bir cluster sisteminde, boyutu çok büyük dosyalar kullanılmaktadır. Bu dosyalar onlarca düğüm arasında paylaştırılır. Bir paralel dosya sisteminde genellikle MDS denen bir metadata server ı bulunur. MDS, I/O düğümlerindeki data hakkında bilgi barındırır. Metadata, bir dosya hakkında isim, disk üzerindeki yeri, dosya sahibi gibi bilgileri içerir. Bazı paralel dosya sistemleri, MDS için bir dedicated server kullanır, bazıları ise MDS görevini I/O düğümlerine aktarır. Yüksek performanslı hesaplamalarda kullanılan paralel dosya sistemlerine örnek olarak Parallel Virtual File System (PVFS), Lustre, ve Ibrix Fusion File System i gösterebiliriz. Bu rapor Lustre dosya sistemini temel almaktadır. EST566B Talat ÖZORAL 3

1.1.1 - Parallel Virtual File System: Clemson Üniversitesi ndeki Parallel Architecture Research Laboratory tarafından geliştirilmiştir. Parallel Virtual File System (PVFS) Linux tabanlı cluster sistemleri için tasarlanmış açık kaynak bir paralel dosya sistemidir. Kurulumu basittir. Üzerindeki metadata server ı bir deditated düğüm ya da I/O istemcilerinden biri olabilir. MDS olarak gçrev yapan düğüm mgr adında bir daemon u çağırır. Mgr daemon, dosya sistemindeki metadata yı yönetir. PVSF de storage daki tüm data çok sayıda I/O istemcilerine dağıtılmıştır. MDS nin görevi, bu dağınık haldeki datanın ne şekilde dağıtıldığını hatırlamak ve paylaşın söz konusu olduğunda doğru şekilde yönlendirmektir. I/O istemcileri iod isimli daemon çağırır. Iod daemon unun görevi I/O istemcileri üzerindeki lokal disklerdeki dosyaları saklamak ve istendiğinde getirmektir. Bu sistem, geleneksel okuma, yazma komutları ile istemcilerdeki dosyalara işlem yapar. Data koruması sağlamak için istemciler üzerinde RAID kullanılabilir. PVSF, kullanıcıya dosyalara erişim için üç farklı arayüz sunar. Bunlar application programming interface (API), Linux kernel arayüzü, ve ROMIO arayüzüdür. API, uygulamaların MDS den metadatayı almasını sağlar. Böylece sonrasında o istemci ile datayı barındıran I/O istemcisi arasında data transferi için direkt olarak bağlantı kurulur.pvfs nin linux çekirdeğinde pvfsd adında bir daemon bulunur. Uygulamanın bir data isteği olduğunda bu isteği dosya sistemine iletir. Romio arayüzü ise Message Passing Interface (MPI) kullanarak dosyalara erişir. 1.1.2 - Lustre: Cluster File Systems, Inc. tarafından üretilmiş ve geliştirilmiştir. Lustre, Linux kümelerinde kullanılır ve açık kaynak bir paralel dosya sistemidir. Bir önceki sistemde olduğu gibi Lustre da metadatayı MDS üzerinde tutar ve datayı objeler şeklinde OST üzerinde (Object Storage Target) saklar. OST doğrudan OBD ler ile (Object-Based Disks) etkileşim halindedir. MDS yüksekseviye dosyalar ve sistemdeki değişiklikler hakkında sürekli değişiklik kaydı tutar. Ayrıca dosya arama, dosya yaratma gibi işlemlerde istemcinin bu I/O isteklerini OBD ye erişim yetkisi olan ve fiziksel olaran üst katmanında yer alan OST ye iletir. MDS cluster ı her zaman ulaşılabilir durumdadır ve hatasız çalışmaktadır. Bir Lustre tabanlı cluster sisteminde istemciler hangi storage controlller da hangi objenin hangi dosyasının saklandığını öğrenmek için MDS ile irtibata geçer. OST üzerindeki datayı ve lokasyonu öğrendikten sonra, istemci dosyanın istenen belli bir bölümünü içeren OST ile direkt bağlantı kurar. Daha sonra OST üzerine mantıksal okuma ve yazma işlemleri yapılır. Periyodik olarak OST dosyanın yeni büyüklüğünü MDS ye haber verir. OST nin ana sorumluluğu, sistem girdi çıktıları ve altında bulunan fiziksel storage ünitesi (OBD) ile etkileşimi sağlamaktır. OST ve disk üniteleri arasındaki etkileşim bir device driver aracılığı ile olur. Bu driver, Lustre nin mevcut dosya sistemleri ile haberleşmesini sağlar. Lustre nin şu an sağladığı OBD driver ları Linux dosya sistemlerine (ext3,reiserfs, XFS) Journaling sağlar. Ayrıca Lustre üçüncü parti OSTyazılımı (BlueArc) da kullanabilir. OST, fiziksel stotage ünitesine yağılan girdi çıktı (I/O) işlemlerini ele aldığı gibi bir objete aynı zamanda erişim istendiğinde locking işlemini de yönetir. Dosyalar üzerinde uygulanan bu locking işlemi, dosya sistemini oluşturan tüm OSTler arasında dağıtılmıştır. Her OST kendi üzerinde saklanan objelerin locklanmasından sorumludur. Lustre obje tabanlı storage üniteleri ile çalışabildiği gibi blok tabanlı aygıtlar olan EST566B Talat ÖZORAL 4

SCSI ve IDE diskleri ile de çalışabilmektedir. Günümüzde çoğu disk üreticisi obje tabanlı sistemi desteklemediği için Lustre paketi içinde Linux için obje tabanlı storage driverı mevcuttur. Lustre yi genel olarak şu şekilde açıklayabiliriz: Ölçeklenebilir bir veri sunucusu Ölçeklenebilir meta data Ölçeklenirliği arttırabilmek için dosya meta data sının storage meta datasından ayrılmış olması Obje tabanlı teknoloji Dağıtılmış disk operasyonları Intel`in yeni nesil 64bit işlemcilerini destekler Paralel erişime imkan veren yüksek performanslı cluster sistemi ClusterFS geliştirmiştir Sunucuların depo birimiyle paralel olarak iletişim kurmasını sağlar ve verilere erişimi hızlandırır Yüksek performans hesaplama gerektiren paralel dosya sistemlerindeki performans ve ölçeklenirlik yararları: PVFS, Lustre, ve IBRIX Fusion gibi paralel dosya sistemleri yüksek performans hesaplama (HPC) sistemlerindeki I/O işlemleri için uygundur. Bu tür dosya sistemleri bir dataya aynı anda paralel olarak erişim gerektiği durumlarda cluster düğümleri yaratırlar. Herhangi bir organizasyonun ya da şirketin storage ünitelerini genişletmeleri gerektiğinde de yararlıdır. EST566B Talat ÖZORAL 5

1.2 - Lustre Nedir? Lustre, basitçe bir paralel dosya sistemidir. Ölçeklenebilir, güvenli, sağlam ve güçlü bir yapısı vardır. Cluster File Systems Inc. tarafından geliştirilmiştir. Lustre nin yaradılış amacı, yeni nesil cluster dosya sistemlerine öncilik etmesinin yanı sıra 10.000 lerce düğüme hizmet edebilmesi, terrabyte ve hatta petabyte lara hızla erişebilmesi,100 lerce gigabyte boyutundaki bir datayı saniyeler içinde ve güvenli olarak taşıyabilmesidir. Günümüzde Lustre çok sayıda Linux cluster sistemlerinde kullanılmaktadır. 4 düğümden yukarısını desteklemektedir. Lustre nin yayınlanan son versiyonu Cluster File Systems in sitesinden ücretsiz temin edilebilmektedir. Bazı teknik bilgiler: Lustre dünyanın en büyük ve karışık linux sistemlerinde I/O performansını arttırmıştır. Data yoğunluğunun çok fazla olduğu ortamlarda en iyi I/O performansını vermektedir. Ölçeklenebilir bir sistem olup açık kaynağı desteklemektedir. Linux için geliştirilmiş bir dosya sistemidir ve açık ağlarda (API) kullanılır. Hammaddenin işlenmesi gibi, Lustre de storage cihazlarını akıllı hale getirerek onları data objelerini yönetebilir hale getirir. Bu objelerserverlar arasında yatay olarak dağıtılmıştır. Bu şekilde performans limitleri büyük ölçüde aşılmıştır. Bir Lustre cluster sistemi oluşturmak için Lustre MetaData Sunucusuna (MDS) ve Lustre Object Storage Sunucusuna (OSS) ihtiyaç vardır. İstemcilerin oluşturduğu bir havuz network ile bu serverlara ulaşır. Lustre dosya işlemleri sırasında MetaData server ı bypass edilerek doğrudan OSS ye birbirlerine paralel dosya patikaları oluşturulur. Metadata operasyonlarını data operasyonlarından ayırmak, gözle görülür bir performans sağlamaktadır. Diğer Unix ve Linux dosya sistemlerinde olduğu gibi Lustre dosyaları da inode lar ile gösterilir. Tek fark, Lustre deki inode lar dosya datalarını barındıran objeleri göstermektedir. EST566B Talat ÖZORAL 6

Lustre nin network mimarisi esnek network ağlarını desteklemektedir. Lustre Network Drivers (LND) kütüphanelerini kullanarak Remote Direct Memory Access (RDMA) ve paralel girdi-çıktı işlemleri için OS-bypass işlemlerini gerçekleştirmektedir. LND TCP networkünü desteklemektedir. Lustre üzerindeki her sunucuyu active-active failover çiftlerine ayırır. Lustre POSIX standardına uygun olarak tasarlanmış bir dosya sistemidir. Lustre, 1.6 versiyonundan itibaren kurulumunda ve konfigürasyonunda basitliği ön planda tutmaktadır. Formatlama ve mount işlemleri kolaylaştırılmıştır. Distributed Lock Manager kullanarak dosya ve dizinler üzerindeki update leri güncelleştirme, metadata journaling işlemlerini yapar. Bottleneck denen ve network teki darboğazları temsil eden sıkışmaların sayısını en aza indirmek için Lustre intent-based locking mekanizması kullanır. Bu mekanizmada dosya ve dizinlere yapılan lock istekleri aynı zamanda bu isteğin nedenini, ne sebeple lock istendiğini de içermektedir. Örneğin, bir dizin içerisine yeni ir dosya yaratmak için lock istendiğinde Lustre bunu tek bir request olarak algılar. Diğer dosya sistemlerinde bu request birdan fazla requestten oluşur(lookup, creation, opening ve locking). Extreme Parallel Computing - Lustre lock manager otomatik olarak kendi policy lerini update edebilmektedir. Tek bir düğüm tarafından kullanılan dosyalar tek bir lock ile ilişkilendirilir ve lock overhead yaşanması engellenmiş olur. EST566B Talat ÖZORAL 7

Onaylanmış Performans Örnekleri: Lustre dosya sistemi, dünyanın en büyük Linux üzerinde çalışan süper bilgisayarlarında kullanılmaktadır. Günümüzün network-oriented bilgisayar sistemleri data storage ve data sharing işlemleri için yüksek performansa ihtiyaç duymaktadır. NSF ve AFS dosya sistemleri client-server modellerinde başarılı olarak çalışıyor olsalar dahi super-computer projelerinde ya da hesaplamanın ve I/O nun çok yoğun olduğu büyük disklerde yetersiz kalmışlardır. Lustre ismini Linux ve Cluster sözcüklerinin bileşiminden almıştır. Bir distributed dosya sistemidir. Bunun anlamı, hesaplama kaynakları ile storage kaynaklarının ayrıştırılmış olmasıdır. Desktop sistemleri kullanıcı ve uygulamaların istekleri ile ilgilenirken dosya server ları da dataları okuma, yazma ve taşıma gibi işlerle meşgul olurlar. İş gücü, hesaplama için ayrı, storage için ayrı olarak bölünmüştür. Herhangi bir failover durumunda journaling ile bu ayrım yarar sağlamaktadır. Lustre, Portals API isimli açık networking API si kullanır. Yığının üstünde Lustrenin sağladığı bir request processing katmanı bulunur. Alt katmanda ise Network Abstraction Layer (NAL) bulunur. NAL değişik network çeşitleri için destek sağlamakla yükümlüdür. Lustre de güvenlik, authentication, authorization ve işletim sistemindeki mevcut güvenlik sistemleri ile sağlanmaktadır. Bu güvenlik sistemlerini Lustre de kullanmak için Lustre üzerinde bir değişikliğe gerek yoktur. OST nin fail etmesi durumunda Lustre bib state recovery fonksiyonu devreye girer ve data kurtarma yapar. Ayrıca, Lustre konfigürasyonu ve durum bilgisi de açık kodlar olan XML ve LDAP kullanılarak kayıt altında tutulur. EST566B Talat ÖZORAL 8

Lustre alt-sistemleri ve aralarındaki etkileşimler Diğer dosya sistemlerinde olduğu gibi Lustre dosya sisteminde de her dosya, dizin, sembolik link için unique bir inode numarası vardır. Inode lar direkt olarak dosyayı göstermek yerine o dosyayı barındıran objenin bulunduğu OST yi gösterir. Klasik dosya sistemlerinde bir dosya yaratılacağı zaman dosya sistemi öncelikle boş bir inode numarasını bu dosyaya atar. Lustre de bir dosya yaratılacağı zaman ise istemci metadata sunucusuna bağlanır, metadata sunucusu dosya için bir inode yaratır, ve ardından OST ile irtibata geçerek o dosyayı barındıracak objelerin yaratılmasını sağlar. Bir RAID sistemde datayı tutan OST ler birden fazla olabilir. OST dahilindeki data, alt katmanda yer alan Object-Based Disks (OBDs) denen disklerden okunur ve yazılır. Sonrasında gelen I/O istekleri eğer yeni yaratılmış bir dosya ise direkt olarak istemci ve OST arasında yapılır. Yeni dosyada bir namespace değişikliği var ise metadata sunucusu da update edilir. Object Storage Targets denen OST ler, istemcinin veri istekleri ile alt katmanda yer alan diskler arasındaki etkileşimleri idare eder. Alt katmandaki bu disklerin OBD olarak adlandırıldığından bahsetmiştik. Bu storage diskleri ile OST arasındaki etkileşim de bir device driver ile sağlanır. Bu sürücünün karakteristik özellikleri ve yapabilecekleri hizmet verdiği disklerin kimliğini oluşturmaktadır. Lustre nin obje tabanlı bir sistem olması sayesinde OST ler mevcut olan bir Lustre sistemine yeni bir storage eklenmesine izin verir. Bu sayede daha esnek bir yapı elde edilmiş olur. Yeni eklenen OST ler diğer OST lerin oluşturduğu havuza hemen eklenir ve metadata sunucusunun storage için kullanmasına hazır duruma gelirler. Benzer şekilde, yeni objecy based diskler de herhangi bir OST nin altında yer alan havuza eklenebilir. Herhangi bir haberleşme ya da storage hatası olduğunda Lustre nin recovery mekanizması devreye girer. Bir derver ya da bir bağlantı noktasının fail ettiği durumda istemci dataya ulaşmak için beklerken timeout a düşer. Daha sonra LDAP a bir sorgu gönderilir ve yapılan bir server replacement hakkında bilgi edinir. Hemen ardından çok hızlı bir şekilde aradığı dosyanın bulunduğu yeni adrese ulaşır. Bunu EST566B Talat ÖZORAL 9

sağlayan failover OST leridir. olarak uyarlar. Failover OST leri mevcut değilse Lustre otomatik Dosya sisteminin güvenilirliği ve her zaman ulaşılabilir durumda olması çok önemlidir. Özellikle network e bağlı istemci sayısı arttıkça ve storage boyutu arttıkça bu durum daha önemli hale gelmektedir. Bir iş istasyonunun lokal disklerinin ya da dosyalarının fail etmesi yalnızca o istasyonu etkilerken merkezi ve dağıtılmış dosya sistemine mensup bir diskin ya da dosyanın fail etmesi, o storage üzerindeki veriye ihtiyaç duyan yüzlerce hatta binlerde istemciyi etkiler. Lustre de dosya sisteminin ulaşılabilirliği ve stabilitesi, bir failover metadata sunucusu sağlamakla ve de OST lerin serpiştirilmiş bir şekilde konumlanmış olmasıyla gerçekleşir. Bir MDS nin ya da OST nin fail etmesi sistemi olumsuz yönde etkilememektedir. Geniş çaplı network kesintilerinde ya da donanım bozulmalarında tüm MDS ler üzerinde bulunan transactional metadatalar ile OST lerin bilgileri restore edilir. Lustre nin kullanıcı tarafındaki yazılım modülleri EST566B Talat ÖZORAL 10

Lustre, OST nin hatalarını giderir. Lustre nin failover mekanizması EST566B Talat ÖZORAL 11

1.3 - Metadata dosya sistemi ve Metadata Sunucuları Metadata dosya sistemi "bilgi hakkında bilgi" anlamına gelmektedir. Daha açık belirtmek gerekirse, metadata, sistemi oluşturan dosyalar ve dizinler hakkında bilgidir. Bu bilginin içeriği lokal dosyalar hakkında bilgiler, dizinler hakkında bilgiler, durum bilgileri, diğer dosya sistemlerinin kullanımı için mount bilgileri, sembolik linkler hakkında bilgiler... vs. Günümüzde kullanılan çoğu modern dosya sistemi metadata journaling kullanarak sistem tutarlılığını sağlar. Dosya sistemi her değişikliği metadata ya kaydeder ve asenkron olarak buradaki journal e yazılı olan değişiklikleri update eder. Bir sistem kesintisi olduğunda metadata journal inden yapılan işlemler tekrarlanır. Lustre sisteminde bu metadata bilgisi bir Metadata sunucusu (MDS) üzerinde tutulur ve dosya dataları da objectler içerisinde OST ler üzerinde tutulur. Bu dizayn dosya sistemini ikiye bölmüştür: medatada sunucusu üzerindeki metadata bilgisi güncellemleri, ve OST üzerindeki dosya bilgisi güncellemeleri. MDS bir istemcinin istediği dosyanın yerini bulduktan sonra tüm I/O işlemleri direkt olarak istemci ve OST arasında yapılır, MDS aradan çekilir. Metadata kullanarak dosya sistemi namespace i yönetmek performans açısından yarar sağlar. Örneğin, metadata sunucular OST ler üzerinde önceden tahsis edilmiş objeleri bularak dosya yaratma operasyonlarını hızlandırır. Lustre sistemindeki metadata operasyonları locking işlemi ile daha da geliştirilmiştir. Örneğin, bir istemci bir dosya yaratmak istediğinde, dizinde bir arama operasyonu yapabilmek için MDS den bir lock ister. Bu isteğe de file creation olarak bir tag iliştirir. Lock isteği kabul edildikten sonra MDS istemcinin istediği işlemleri yerine getirir, dizini modifiye eder, dosyayı yaratır, lock u kaldırır. Dizin yaratma istekleri EST566B Talat ÖZORAL 12

1.4 - Lustre nin Network Bağımsızlığı Lustre, Network Abstraction Layer (NAL) denen network soyutlama katmanı sayesinde çok çeşitli ağ yapıları ile kullanılabilmektedir. Günümüzde TCP ve Quadrics (QSWNet) ağlarında kullanılmaktadır. Myrinet, Fibre Channel, Stargen and InfiniBand ağları da yakın zamanda desteklenecektir. Heterojen ağlar için Lustre değişik bir destek sunar; Örneğin, bir istemci ethernet ile MDS ve OST sunucularına erişebilirken diğer istemciler QSW ağı kullanıyor olabilirler. Lustre nin heterojen ağlar için desteği. Lustre ayrıca desteklediği farklı ağlar arasında görev yapan router cihazları için de destek sağlar. Bu sayede üçüncü parti OST lerin kullanımı kolaylaşmıştır çünkü bu OST ler Lustre nin gördüğü her ağı görmüyor olabilir. EST566B Talat ÖZORAL 13

Lustre Network Routing EST566B Talat ÖZORAL 14

1.5 - Lustre Administrasyonu Lustre nin bizzat kendisinin bir açık kod sistem olması, bunun yanısıra açık kod sistemlere (Linux) hizmet etmesi administrasyon işlemlerinin de açık kaynak şeklinde yapılmasını gerektirmektedir. Lustre nin tüm konfigürasyon datası, bir açık kod olan extensible Markup Language (XML) ile saklanmaktadır. Bu xml dosyası bir DTD (Document Type Definition) dosyası kullanmaktadır. Standart bir text editörü ile bu dosyalara erişilebilir, yazılabilir ve değiştirilebilirler. Bu konfigürasyon dosyaları LMC (Lustre make configuration) programı ile yaratılabilir ve güncellenebilir. LMC ile karmaşık cluster sistemleri, 100lerce OST den oluşan sistemler, router lar ve istemciler için konfigürasyon dosyaları çok hızlı bir şekilde yaratılır. Lustre, Light- Weight Directory Access Protocol (LDAP) ve Simple Network Management Protocol (SNMP) gibi açık network data kaynakları ve administrative mekanizmaları ile entegre biçimde çalışır. LMC programı LDAP tabanlı konfigürasyonu XML e çevirir. LDAP altyapısı cluster recovery işlemi sözkonusu olduğunda yardımcı olmaktadır. Lustre başlangıç seviyesindeki konfigürasyon ve administrasyon işleri için temel bazı komut satırından çalışacak komutlar sunar. Lctl (Lustre Control) programcığı ile lowlevel network ayarları ve aygıt konfigürasyon işlemleri, bunların yanı sıra cluster sağlığını gösteren batch testleri yapılabilir. Lconf (Lustre configuration) programı ise sistem adminlerinin Lustre yi bazı spesifik düğümler için kullanıcı konfigürasyon dosyaları ile konfigüre etmesini sağlar. 1.6 - Lustre Global Namespace Bu raporda daha önce de belirtildiği gibi, paralel dosya sistemlerinde çok fazla avantaj bulunmaktadır. Son kullanıcı tarafından bakılacak olursa en önemli avantaj, çok fazla storage ünitesinin kullanılabiliyor olması ve bu storage disklere herhangi bir authorized istasyondan ya da client dan ulaşılıyor olmasıdır. Ancak, paylaşıma açılmış bir storage a farklı sistemlerden erişim bazen karmaşık olabilir. Bu işi paralel dosya sistemleri için basite indirgeyecek en temel yok global namespace kullanmaktır. Bir global namespace aslında dağıtılmış dosya sisteminin bir dizin üzerinde kullanıcılara açılmasıdır. Bu işleme dosya sisteminin o dizine mount edilmesi de denir. AFS dosya sisteminde global namespace /afs dizinidir. Bundan farklı olarak, Lustre deki global namespace var olan bir Linux dosya sisteminde herhangi bir dizine aşılanabilmektedir. Bunun anlamı, Lustre dosya sistemi mount edildiğinde, onaylanmış her kullanıcı dosyalara aynı patika ve dosya adı ile erişebilmektedir. Bunun sağlanması için de her kullanıcıdaki mount point in aynı olması da gerekmemektedir. Eğer istenirse admin tarafından mount point her istemcide aynı şekilde yaratılabilir ama bu bir zorunluluk değildir. EST566B Talat ÖZORAL 15

1.6.1 - Lustre Global Namespace Filtresi Standart Linux istemci sistemleri o istemci için kullanılabilecek dosya sistemleri bilgilerinin mount bilgisini /etc/fstab dosyasında barındırır. Lustre mount mekanizmasında ise Lustre dosya sistemine diğer dosya sistemlerini mount eder ancak her istemcinin bunlardan haberdar olmalarına gerek yoktur. Bu sayede Lustre farklı dosya sistemlerinin kullanılacağı ortamlarda da yararlı bir entegrasyon mekanizması rolünü üstlenmektedir. EST566B Talat ÖZORAL 16

1.7 - Metadata ve Dosya girdi-çıktı performansı geliştirmeleri Lustre de dosyaya yazma istekleri data hedef OST ye ulaşana kadar bitmemiş sayılır. Yoğun cluster larda bu işlem her dosyaya yazma işlemi sırasında gecikmelere sebep olur. Bunu gidermek için journaling metodu kullanan writeback cache kullanılmaktadır. Metadata için bir writeback cache var ise, metadata güncellemeleri öncelikle bu cache e yazılır. Hemen ardından ard arda ilgili storage ünitesi güncellenir. Paralel dosya işlemi burada hızlanmaktadır. OST üzerinde tutulan allocation datası dışındaki tüm metadatalar tek bir failover metadata server ı üstünde tutulur. Metadata sunucularda cluster sisteminin kullanılması metadata performansını büyük ölçüde arttırır. Metadata bilgisini cluster a yayma işi, aynı zamanda metadata prosesinin de dağıtılması anlamına gelmektedir ki bu toplamda metadata operasyonlarının performansını arttırıcı bir unsurdur. Meta-Data Clustering Lustre Meta-Data Writeback Cache EST566B Talat ÖZORAL 17

Dosyaya yazma işlemine benzer olarak dosyadan okula işlemi de bazen sorun olabilir. Okuma işlemlerinde en sık yaşanan darboğazlar Lustre üzerinde tutulan sistem dosyalarıdır. Örnek verecek olursak, çok sayısa istemcinin aynı anda reboot ettiği bir ortamda her bir istemci aynı anda aynı dosyayı okumak isteyecek ve network yükü çok artacaktır. Bu gibi durumlarda en çok istenen dosyalar birden fazla serverda konumlandırılır. Bu sayede istemciler aynı dosyaya farklı lokasyonlardan ulaşacak, hızlı bir şekilde okuyacak ve netork üzerinde bir darboğaz oluşmamış olacaktır. Çok sayıda istemcinin kullandığı dosyayı çok sayıda OST cache eder. Lustre sisteminde iki faz ile dosya okuma yapılır: Bir lock isteği read isteğinin önüne geçer, ve OST okuma lock unu sağlarken datanın cache lendiği cluster a gider ve o düğümü okuma işlemi için kaynak gösterir. Lustre için Collaborative Read Cache EST566B Talat ÖZORAL 18

1.8 - Gelişmiş Güvenlik Dağınık dosya sistemlerinde dosya sisteminin güvenliği çok önemli bir konudur. Standart güvenlik uygulamaları belgeleme, onaylama ve şifrelemedir. SAN genellikle korumasız olduğu için OST ler için secure network-attached disk uygulamaları sağlar. Lustre Generic Security Service Application Programming Interface (GSS-API) kullanmaktadır. Bu api, güvenli bağlantılar kurulabilmesi ve datanın doğruluğunu ve gizliliğini sağladığı için kullanılmaktadır ve bir açık kaynaktır. Lustre üzerinde doğrulama işlemi (authentication) Kerberos 5 mekanizmasını desteklemektedir. Authorization işlemi sırasında POSIX desteği olan ve kendisine özel olan bazı access control listelerini (ACL) kullanır. ACL nin getirisi olan esneklik ve olanaklar, sözkonusu bir cluster dosya sistemi olduğunda ve binlerde kullanıcı hesabı olduğu düşünülünce daha da önem kazanmaktadır. Dosya okuma ve yazma sırasında şifreleme mekanizması devreye girer. Datanın encryption ve decryption işlemleri StorageTek/University of Minnesota nın geliştirdiği SFS dosya sistemindeki gibi yapılır. Yani, şifreleme ve de-şifreleme işlemleri client tarafında yapılmakadır. Bunun için paylaşımda olan bir anahtar kullanılır. Lustre de dosya okuma güvenliği EST566B Talat ÖZORAL 19

2.1 - Lustre Temini ve Kurulumu Bölüm 2 - Teknik Bilgiler Lustre ücretsiz olarak www.lustre.org adresinden temin edilebilir. Clusterfs şirketinin sayfasının bir uzantısı olan bu sayfada ve www.clusterfs.com sayfasından da Lustre dosyalarına erişilebildiği gibi çok sayıda yardımcı dökümana da erişilebilmektedir. Lustre nin kurulumu öncesi kontrol edilmesi gereken 2 ana nokta vardır: 1. Lustre nin çalışacağı Linux kernel ının Lustre yi destekliyor olması (şu an için 2.4.21 ve 2.6.5, 2.6.9 için testler devam ediyor) 2. Konfigürasyon için gerekli bazı Lustre programları Ayrıca, Lustre yi farklı networkler ile entegre kullanabilmek için Sandia laboratuarlarının geliştirdiği bir yazılım olan Portals programı kullanılır. Portals yazılımı, Network abstraction layer katmanını oluşturur. Raporda önceki kısımlarda bahsi geçen failover mekanizması için de yukarıda sayılan paketler ve konfigürasyonlardan başka bazı paketler indirilmelidir. Yukarıda belirtilen maddeler sağlandığı zaman www.lustre.org/downloads.html adresinden Lustre nin rpm paketleri temin edilir. 1. kernel-smp-<release-ver>.rpm Lustre patch i içeren Linux kernel paketi. 2. lustre-modules-<release-ver>.rpm Yukarıdaki kernel için modüller. 3. lustre-<release-ver>.rpm - Lustre konfigürasyonu için gerekli programlar. 4. kernel-source-<release-ver>.rpm - Lustre patch leri geçilmiş Linux kernel kaynak kodu. 5. lustre-source-<release-ver>.rpm Lustre kaynak kodu. Yukarıda belirtilen rpm paketlerinden de anlaşılacağı gibi Lustre, Linux ün core kernel ına bazı patch ler geçmek durumundadır. Bunun başlıca sebebi yeni bazı fonksiyonları export edebilmek ve ext3 için yeni eklemeler yapmak ve locking işlemini yapabilmek içindir. Önceden hazırlanmış bu rpm paketlerini kullanırken; 1. kernel-smp-2.4.21<release-ver>.i686.rpm 2. lustre-lite-utils-2.4.21<release-ver>.i386.rpm paketleri kurulur. 3. lilo.conf (ya da duruma göre grub.conf) dosyası yeni kernel dan boot edecek şekilde güncellenir. 4. Reboot edilir. EST566B Talat ÖZORAL 20

2.2 - Lustre nin hızlı konfigürasyonu Bir Lustre sisteminde temel olarak 3 adet subsystems bulunur. Bunlar;Client lar (istemciler), bir Metadata sunucusu (MDS), ve Object Storage Target lar (OST's). Bunların üçü aynı sistemde var olabileceği gibi farklı sistemlerde olup ortak çalışıyor da olabilirler. Bir istemci sisteminde opsiyonel olarak bit Logical Object Volume yöneticisi (LOV) de bulunabilir. Görevi, OST ler üzerinde arşivleme yapmaktır. Lustre yi en hızlı biçimde konfigüre etmek için Lustre ile gelen konfigürasyon tool ları kullanılır. Lustre kurulu olan sistemde /usr/lib/lustre/examples dizini altında örnek bazı scriptler bulunur. Raporun bu kısmında bahsi geçen bu örnek betikler ile basit bir konfigürasyon anlatılacaktır. 2.2.1 - llmount.sh betiği Lustre nin en basit şekilde konfigüre edilmesi demek, her 3 subsistemin de aynı düğüm içinde çalışması anlamına gelmektedir. Bu betiği tek düğümlü sistem için direkt olarak kullanabiliriz. Bu betik ilk olarak NAME değişkeni ile tanımlanan bir konfigürasyon betiğini çağırmaktadır. Bu konfigürasyon betiği lmc yi kullanarak bir XML konfigürasyon dosyası oluşturur. Sonra bu XML dosyası lconf tarafından çağırılır ve asıl sistem konfigürasyonu bu sırada yapılır. Ardından llmount.sh betiği konfigürasyon için gerekli diğer tüm modülleri yükler. Sonra, betik sunucu düğümlerinin /tmp dizinleri altına küçük loopback dosyaları bırakır. Betiği değiştirerek bu dosyaların boyutları ve konulacakları dizinler hakkında değişiklik yapılabilir. Son olarak, betik ilk konfigürasyon betiğinde belirtildiği şekilde, yani /mnt/lustre olarak Lustre dosya sistemini mount eder. Sistemi başlatırken iki konfigürasyon betiğinin varlığından emin olmak gereklidir. Bunlar XML dosyasını (local.xml) hazırlayacak olan local.sh dosyası ile lmc komutunu içeren lov.sh dosyası. Lov.sh betiği, ilk çalıştırıldığında bir MDS, bir LOV, iki OST ve bir istemciden oluşan bir sistem için bir konfigürasyon dosyası oluşturacaktır. Llmount.sh betiği aşağıdaki şekilde çalıştırılır: NAME={local lov} sh llmount.sh Sample output from executing this command on a random system looks like the following: # NAME=local sh llmount.sh config.portals../utils/../portals loading module: portals srcdir../utils/../portals devdir libcfs EST566B Talat ÖZORAL 21