Dünyada en sağlam işletim sistemleri düşünüldüğünde ilk akla gelen işletim sistemlerinden biri olarak Solaris akla gelmektedir. Solaris proje olarak 1987’de , AT&T Corporation ve Sun yazılım mühendisleri tarafından inşa edilmeye başlanmıştır. BSD Unix’lere alternatif olarak üretilmeye başlanmış ve isim olarak SunOS seçilmişti. Daha sonra satışa sunulurken ismi Solaris olarak değiştirilerek günümüzdeki yerini almıştı.
Makalemin ilk bölümüne aşağıdaki linkten ulaşabilirsiniz.
http://www.cozumpark.com/blogs/linux_unix/archive/2013/06/09/solaris-kurulum-ve-temel-ayarlar.aspx
Bu bölümde ise genel ayarlar hakkında bilgi vereceğim.
Ssh bağlantısının yapılması
Default kurulum ayarlarına göre Solaris’e ssh protokolü ile bağlanamazsınız. Güvenlik nedeni ile bağlanmanıza izin verilmemektedir. Eğer herhangi bi ssh ara yüzü ile bağlanmayı denerseniz aşağıdaki hata ekranı ile karşılaşabilirsiniz.
Bu ekranı birdaha görmemek ve ssh ara yüzüne bağlanmak isterseniz aşağıdaki değişikliği yapmak gerekmektedir. Önce nano isimli kullanışlı editör ile ssh ara yüzünün konfigürasyon dosyasını açalım,
# nano /etc/ssh/sshd_config
Konfigürasyon dosyası açıldığında aşağıdaki ekran görüntüsünde göreceğiniz kırmızı kare içindeki aşağıdaki satırı bulacağız.
Gördüğünüz gibi PermitRootLogin karşısında no yazıyor. Bu kısmını yes olarak değiştireceğiz. Sonrasında ctrl+x tuş kombinasyonuna basarak “y” ile kayıt ederek çıkacağız. Bu işlem sonrasında hemen ssh servisini restart edelim. Bunun için aşağıdaki komutu kullanacağız,
# svcadm restart ssh
Artık istediğiniz ssh programı ile bağlanabilirsiniz. Ben bundan sonra sistem düzenlemelerine ssh uzak bağlantı ile devam edeceğim.
Solaris root logon hakkı
Daha öncede belirttiğimiz gibi Solariste direk root kullanıcısı ile logon olmak hem consol ekranında hemde ssh bağlantılarda disable edilmiş durumdadır. Bu durum çoğu zaman ilave işlem gerektirir. Her seferinde önce normal bir user ile login olup sonrasında root’a yükselmek gerekiyor. Bu işlem yapılan her işlem için gerekiyor ve zaman içinde insanı yoran bir hale gelebiliyor. İsterseniz hemen root kullanıcısına direk login olabilme hakkı verelim. Hatırlarsanız biz sistem kurulurken admin kullanıcısı oluşturmuştuk. Önce admin kullanıcısı ile login olacağız ve sonrasında root kullanıcısına yükseleceğiz. Bunun için aşağıdaki adımları kullanalım ve sonrasında consol ekranına direk root kullanıcısı ile logon hakkı verelim. Aşağıdaki adımlarla root kullanıcısına direk login olma hakkı verebiliriz.
Hemen önce admin ile login olalım.
Login olduktan sonra aşağıdaki ekran gelecektir,
Kırmızı kare içindeki ilk satır’ın sonu gördüğünüz gibi $ ile bitmektedir. Bu kısıtlı bir kullanıcı anlamına gelmektedir.
# su root
Komutunu verelim. “su” Super User kısaltmasıdır ve bu komut sonrasında password soracaktır. Bu sorunun cevabı kurulumda verdiğimiz root password’ü olarak cevaplanmalı. Password’ü verdikten sonra yukarıdaki screenshot’ta gördüğünüz gibi satırın sonu # olarak bitmecektir.
# rolemod -K type=normal root
Komutunu verelim ve işlem tamam. Artık root kullanıcısını direk kullanabilirsiniz. Güvenlik açığı olduğunu unutmayın. Çok güvendiğiniz bir lokasyon ise veya dışardan erişim mümkün değil ise güvenle kullanabilirsiniz.
Boot süresinin kısaltılması
Solaris kurulduktan sonra GRUB boot loader’in bekleme soresi 30sn olarak belirlenmiş bulunmaktadır. Günümüzde EFI bios’ların boot süreleri zaten uzun. Birde bu süre eklendiğinde boot süresi çok anlamlı olmamaktadır. Hemen default değerler için aşağıdaki ekranı inceleyelim.
İlk önce aşağıdaki komutu verelim. Üst resimdeki ilk kırmızı karede görebilirsiniz,
# bootadm list-menu
Bu komut size bir liste dökecektir. Gördüğünüz gibi yukarıdaki ikinci karede boot time out süresi 30sn. Bu süreyi kısaltmak için üçüncü kırmızı karedeki komutu veriyoruz,
# bootadm set-menu timeout=5
Bu komut sonrasında tekrar # bootadm list-menu komutunu verirseniz üstteki ekranda en alt karedeki timeout 5 ibaresini görebilirsiniz. Artık boot için bekleme süremiz 5sn oldu. Acil işlemlerde 25 sn’lik süre emin olun çok kritik olabiliyor.
Solaris online update
Günümüzde her sistem kendine ait bir update sistemine sahiptir. Bir zamanlar bu işlemler mümkün değildi. Çünkü Linux ve Unix sistemler üzerinde kurulu uygulamalar sistem update’inden olumsuz yönde etkilenip çalışamaz hale gelebiliyorlardı. Ama günümüzde bu işlemler çok sağlam kontrollerden geçirildiği için gerekli sistem güncellemeleri internet üzerinden online olarak yapılabilmektedir. Şimdi nasıl yapıldığını inceleyelim isterseniz. Öncelikle mevcut duruma bir bakalım,
Versiyon kontrolünü en güzel cevaplayan komut,
# uname –v
komutudur. Size yukarıdaki kırmızı karenin hemen altındaki satırda gördüğümüz 11.0 gibi kısa ve öz bir cevap verecektir. Eğer daha detaylı bir cevap istiyorsanız şu komut yine yukarıda gördüğünüz cevabı verecektir.
# cat /etc/release
Şimdi hemen upgrade edelim ve son sürüm 11.1 olarak güncelleyelim. Bunun için aşağıdaki komutu veriyoruz,
# pkg update –accept
Bu komut ile sistem update işlemi yapılmıyor. Update edilecek paketler ve bileşenler bilgisi alınır. Yani bir nevi yeni paketler ile sistemde kurulu olan ve update edilmesi gereken paketlerin listesi çıkartılır. Aşağıdaki komutu verelim ve update işleminde ikinci adımı gerçekleştirelim,
# pkg update pkg
Bu işlem kısa sürecektir. Sonrasında birkez daha bir önceki komutu vereceğiz. İşte sistem update’i başlıyor.
# pkg update –accept
Size anlaşma metnini gösterdikten sonra sistemi upgrade etmeye başlayacaktır. Işlem bittikten sonra sistemi reboot etmeniz gerekecek. Bu işlemi periyodik olarak yaparsanız sistem güncellenecek, güvenlik ve performans iyileştirmeleri uygulanacaktır.
Ip düzenlemeleri ve Aggregation (Network Teaming)
Solariste ip düzenlemeleri oldukça farklı. Konfigürasyon dosyalarını herhangi bir editör ile düzenleme zorunluluğu yok. Komutlarla herşeyi halledebiliyorsunuz. Hatırlarsanız ben ilk makalede sistemi kurarken DHCP ile çalışmasını sağlamıştım. Şimdi ip yapısını bir inceleyelim isterseniz. Hemen aşağıdaki komutu verelim,
# ifconfig –a
Size gelen ekranda ip adres karşılığı yukarıdaki gibi görünecektir. Bu adres DHCP server tarafından atanan ip adresidir. Hemen ikinci komut ile fiziksel duruma bakalım,
# dladm show-phys
Bu komut ile sunucu üzerindeki fiziksel network kartlarını göreceksiniz.
Gördünüz üzere benim sunucumda 1 adet ethernet kartı var. Hemen 3 adet daha ekleyeyim. Sistem sanal olduğu için hemen ekledim ve reboot ettim.Tekrar bakalım,
# dladm show-phys
Komutunu verdiğimizde görüntü aşağıdaki gibi olacaktır. Ben bu ilave network kartlarını bonding yaparak iSCSI disk kullanmak için ekledim.
Yukarıda gördüğünüz gibi toplam network kartı adedi 4 oldu. Şimdi isterseniz net2 ve net3 isimli kartları bir araya getirelim. Temelde bu işleme “network teaming” deniliyor. Bu isim Linux’ta “bonding” Solariste ise“aggregation” olarak adlandırılıyor. Şimdi bir link aggregation oluşturalım ve kullanmaya başlayalım. Aşağıdaki ekrana bir bakalım. Ekran görüntüsündeki renkli kareler içinde kullandığım komutları resmin hemen altında açıklıyor olacağım.
Üst resimde farklı renkli kareler görüyorsunuz. Ilk kırmızı karede gördüğünüz olan komut
# dladm show-aggr
Sistemde teaming varmı onu gösteredektir. Gördüğünüz gibi bir sonraki satır boş. Yani link aggregation mevcut değil. Link aggregation meydana getirebilmek için ilgili network kartlarını disable etmek zorundayız. Kırmızı karenin bir altında bulunan mavi karede gördüğünüz komut ile network linklerini disable edelim
# ipadm disable-if net2
# ipadm disable-if net3
Linkler disable oldu. Hemen 3ncü(net2) ve 4ncü(net3) kartlarında içinde bulunduğu bir link aggregation yapalım, yukarıdaki resimde beyaz kare içindeki şu komut ile,
# dladm create -l net2 -l net3 lnkaggr0
Durumu bir daha inceleyelim ve aggregation yapısının oluştuğunu görelim, yine şu komut ile görebilirsiniz. Sarı kare içinde,
# dladm show-aggr
Peki kartlar ve aggregation durumuna bakalım. Yukarıdaki resimde açık mavi kare ve içindeki lacivert kare içinde görebilirsiniz. Şu komut ile,
# dladm show-link
Herşey tamam gibi görünüyor. Linkler hazır ve grup hale geldi. Son bir işlem var. oda link aggregation’a ip atamak. Link aggregation’a ip vermek için ise şu komutu kullanacağız,
# ipadm create-ip lnkaggr0
# ipadm create-addr -T static -a 192.168.1.45/s4 lnkaggr0/v4
Ilk önce link aggregation için fizksel olarak ip linki oluşturduk. Sonrada bu linke ip vermek için ikinci karedeki komutu kullanıyoruz. Bakalım ne durumdayız,
# ifconfig –a
Gördüğünüz gibi kırmızı kare içerisinde “link aggregation” diğer adıyla “network teaming” oluşturduk ve ip atadık. Şu an pingleriğinizde yada herhangi bir işlem yaptığınızda size cevap veriyor ve çalışıyor olması lazım. Yine önemli nokta olarak belirtmeliyim, yukarıdaki görüntüde net2 ve net3 isimli kartlar yok. Solaris bunları ortadan kaldırdı. Çünkü tek başlık altında kullanımına izin verecek. Aslında kartlar sıkıntısız çalışırken kullanıma izin vermemek için disable etti. Buradaki disabla aslınde biraz farklı. Sadece görüntüde disable etti. Bakınız,
# ipadm show-if
Listedeki net2 ve net3 isimli kartlar disabled, fakat lnkaggr0 up ve hertürlü isteğe cevap veriyor. Işlem tamam. Daha sıkı test etmek isterseniz kartların kablolarını çekerek test edebilirsiniz.
iSCSI protocol ile LUN bağlama işlemi
Network kartlarımızı yapılandırdık. Ip düzenlemelerinide yaptık. O halde iSCSI protokolünü kullanarak aggregation linkine bir LUN bağlayalım. Büyük kurumlarda iSCSI network’ü için ayrı bir VLAN yapısı oluşturmak ve bu şekilde kullanmak daha efektif olacaktır. Bazı kurumlarda Switch’leri dahi ayrılarak bu network’ün daha stabil ve performaslı çalışması sağlanmaktadır.
Network tarafının yapılandırılmasından sonra diskimizi Solaris2 file sistemi ile formatlayalım. Kulağa hoş geliyor. Şimdi hemen iSCSI servisini kontrol edelim. Çalışmıyorsa çalışır hale getirelim.
# svcs iscsi/initiator
Gördüğünüz üzere servis online. Yani konfigürasyon için hazır. Ben storage üzerinden 512GB’lık bir alan ayırdım ve Solarisin kullanımına sundum. Aşağıdaki ScreenShot’I inceleyelim ve devam edelim.
Yukarıdaki ekran görüntüsünde kırmızı ile işaretlediğim alan içindeki komut ile iSCSI Storage’ın ip adresini discover edilecek ip olarak atadım. Yani şu komut,
# iscsiadm add discovery-address 192.168.1.251;
Bu komut sonrası Storage artık görülebilir hale gelecektir. Arkasından hemen sarı kısımda işaretlenen komut ile iSCSI target device’ları görelim. Komut şu şekil,
# iscsiadm list discovery-address -v;
Beyaz kare içinde benim kullanmak istediğim iSCSI device görülüyor. Bu alanı formatlayıp Solaris için kullanıma sunacağım. Şimdi Solaris alanına bağlanalım, komut şu,
# iscsiadm add static-config iqn.1992-04.com.emc:storage.ionas.SolarisLUN,192.168.1.251
An itibarı ile diskimiz Solaris ile bağlandı. Tabiiki RAW durumda yani formatsız, şimdi aşağıdaki komutu verelim ve bu durumu kalıcı hale getirelim.
# iscsiadm modify discovery --static enable
Sırada diskin partition yapısını oluşturma ve sonrasında formatlayıp sisteme bağlama adımlarını halledeceğiz. Formatlayalım ve sistemde kullanılabilir hale getirelim. Bunun için aşağıdaki komutları kullanacağız. Bir alttaki ekran görüntüsünde görülen en üstteki kırmızı kutudaki
# format –e
komutunu verelim. Ve aşağıdaki ekran görüntüsünü birlikte incelemeye başlayalım,
Gördüğünüz üzere available disk selection ekranında 2 adet disk görünüyor. Bunlardan 1 numaralı disk EMC storage’den bizim ayırdığımız 500GB’lık LUN’umuz. Biz bu LUN’u seçeceğiz. seçenek kısmına 1 yazarak devam ediyoruz. Gelen menü yukarıda gördüğünüz gibi olacaktır. Buraya fdisk yazarak bir sonraki aşamaya geçelim. Mavi kare içinde görebilirsiniz.
Şimdi sorası ile 1 , 1, 100, y, 6 cevapları ile kayıt edelim. Ve sonrasında 7 cevabını vererek bir önceki menüye gelelim.
Yukarıdaki gibi label komutunu verelim. “0” cevabını verelim, sorulan soruya “y” cevabı ile devam edelim. Şimdi,
Gördüğünüz gibi partition oluşturuyoruz. Yukarıdaki renkli işaretlenmiş şekilde sorulara cevap vererek devam edelim,
Kırmızı bölümde işaretlenmiş tüm sorulara Enter ile devam ediyoruz. Sarı kare içindeki ismi verirken format komutunu ilk verdiğimiz ekran görüntüsünde bulunan 1 numaralı seçenekte bulabilirsiniz. “ içinde yazılması çok önemli. En son yukarıdaki ekranın en altında görüldüğü gibi q cevabı ile çıkıyoruz.
Şimdi bakalım diskimiz ne durumda, şu komutu veriyoruz,
# prtvtvtoc /dev/rdsk/c5t2d0s0
Herşey güzel görünüyor. Şimdi formatlayalım, komutumuz,
Farkettiyseniz sona bir s0 ilave ettik. Solariste disk kodu açıklamasını aşağıdaki şekilde görebilirsiniz,
Bu yüzden sondaki s0’i ekledik. Diskimizi formatlayalım ve sistemde kullanılabilir hale getirelim. Bu disk üzerine file sistem oluşturmak için aşağıdaki komutu kullanıyoruz.
# newfs /dev/rdsk/c4t1d0s0
File sistem oluşturuldu, mount ederek devam edelim, ama önce mount edeceğimiz lokasyon için directory açalım, Linux ve Unix dünyasında sürücü harfi diye bir olay yok biliyorsunuz. Bağlanacak alanları bir klasöre atayarak bu işi hallediyoruz. Ben / lokasyonuna cozumpark diye bir klasor açıyorum. Bu klasöre bağlayacağım,
# mkdir -p /cozumpark
Şimdi Mount edelim,
# mount /dev/dsk/c5t2d0s0 /cozumpark
Bu işlem sonrasında diski istediğiniz gibi kullanabilirsiniz. Ama sistem’i reboot ettiğinizde disk bağlantısı kesilecektir. Bunun için bağlantı işini kalıcı hale getirelim. Aşağıdali gibi yapabilirsiniz,
Kalıcı şekilde mount etmek için vfstab dosyasına aşağıdaki gibi ilave edelim,
#nano /etc/vfstab
/dev/dsk/c5t2d0s0 /dev/dsk/c5t2d0s0 /cozumpark ufs 1 iscsi -
Ekran görüntüsü aşağıdaki gibidir,
Bu satırı ilave ettikten sonra ctrl+x tuş kombinasyonunu kullanın. Size kayıt edelimmi diye sorduğunda ise “y” diyerek kayıt edebilirsiniz. Artık sistem kapanıp açıldığında networksel bir problem yada fiziksel bir problem olmadığı sürece diski görebileceksiniz.
- Hostname değiştirme
Solariste hostname’i aşağıdaki adımlarla gerçekleştiriyoruz. Önce sunucunun ismini görelim,
# hostname
# svccfg -s system/identity:node listprop config
Bu komut çıktılarını aşağıdaki screenshot’ta kırmızı, sarı ve lacivert kareler içinde görebilirsiniz
Değişikliği gerçekleştirmek için gerekli komutları verelim. Sunucu ismi srvsol01 olarak görünüyor. Hemen şu iki komutu kullanıyoruz, ekran görüntüsünde açık mavi kare içinde görebilirsiniz,
# svccfg -s system/identity:node setprop config/nodename="solaris.cozumpark.intra"
# svccfg -s system/identity:node setprop config/loopback=" solaris.cozumpark.intra "
Yukarıdaki “ ’lar içerisinden yeni vermek istediğim solaris ismin görüyorsunuz. Bu komutlar sonrası sistem hostname’i değişiyor. Yeniden kontrol edelim, şu komutlarla,
# hostname
# svccfg -s system/identity:node listprop config
Yukarıdaki ekranda beyaz ve gri kare içerisinde sonucu görebilirsiniz. Eğer FQDN kullanacaksanız o şekilde vererek değişikliği gerçekleştirebilirsiniz.Şimdi son işlem olarak hosts dosyasındaki değişikliğide yapalım ve işlemi tamamlayalım,
# nano /etc/hosts
Dosya içeriğini kırmızı kısımda gördüğünüz gibi değiştirmeniz gerekiyor. En alt satırıda ekleyerek işi bitirebilirsiniz. Son satır tamamen sizin tercihinize yada gereksinimlere kalmıştır.
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# Internet host table
#
::1 solaris localhost
127.0.0.1 solaris localhost loghost
192.168.1.45 solaris.cozumpark.intra
Solaris klasik işletim sistemlerinden biraz daha kendine has yönetilen bir işletim sistemi olmakla beraber donanımsal bir problemle karşılaşılana kadar hiç durmadan çalışabilir. Bunu canlı yaşamış biri olarak güvenle söyleyebilirim. Bir sigorta şirketinde uptime çıktısını 3 yıl olarak gördüm. 3 yıl içinde o kadar çok operasyonel işlem yapmalarına rağmen hiç restart edilmemişti. Bir sonraki adımda ise Solaris üzerine Oracle database kurulumunu yapacağız.