13 Aralık 2013

Linux Komut Satırından Public (Dış) IP'yi Bulmak


Çoğu zaman yönettiğim Linux sunucularda komut satırında çıkış IP'sini görmeye ihtiyacım oluyor. Bu tür bir gereksinim grafik tabanlı bir browser a erişemeyen pek çok kişi için de ortaya çıkabilir.Öneğin karşı tarafa firewall'den izin vereceği IP yi verirken  veya firewall üzerindeki NAT lamaları kontrol ederken v.b. 
Bu tür durumlarda kullandığım 2 temel komutu aşağıda 
wget
wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
curl
curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

11 Ekim 2013

Apache Cloudstack Nedir?


Bulut bilişim günümüz bilişim dünyasında en sıcak konu ve bu konuda önderliği açık ara Amazaon Web Services yapıyor. Bunun yanında Amazon'a yakın ölçekte en büyük  bulut bilişim girişimi de Microsoft'tan Azure ile geldi. Bu iki büyük girişim ve benzerleri herkese açık genel bulut diyebileceğimiz Public Cloud kategorisine giriyor. 
Public Cloud çözümleri pek çok startup'ın , internete dayalı iş yapan pek çok firmanın hayatını kolaylaştırsa da sabit yüklere sahip, çoklukla geleneksel iş yükleri olan ve bir takım regülasyonlara tâbi olan firmalara uymuyor çoğu zaman.
Bu türden firmaların bulut bilişimin getirdiği esneklik, yönetim kolaylığı, ölçülebilirlik gibi özelliklerden yararlanabilmesi için temelde AWS'yi modelleyen özel bulutlar oluşturulması da gün geçtikçe yaygınlık kazanan bir diğer bilişim konusu olarak önümüze geliyor.
Özel bulut tarafında ücretli sağlanan pek çok çözümden ziyade sektörün önde gelen firmalarının desteklediği iki çözüm oldukça öne çıkmış durumda. Bunlardan bir tanesi NASA ve Rackspace ortaklığıyla ortaya çıkmış ve şu anda en geniş katılımcı desteğine sahip OpenStack. Diğeri ise başta Citrix tarafından desteklenen sonrasında Citrix'in desteğini sürdürerek pek çok başarılı projeye ev sahipliği yapan Apache Foundation'a devrettiği Apache Cloudstack.  

Her ne kadar OpenStack bu alanda ilk proje olması ve katılımcı firma sayısının çokluğuyla öne çıksa da Apache CloudStack da çok kısa sürede kurulup ve kullanım kolaylığı geniş hypervisor desteği ile hızla kullanım alanını genişletiyor ve şu anki durumuyla benim tercihlerimde bir adım önde. 
Bu nedenle "Apache Cloudstack nedir?" ile başlamak istedim.
Apache Cloudstack'i  çok sayıda sanal makinayı, sanal ağı,  farklı hypervisorleri , farklı depolama kaynaklarını yüksek erişilebilir ve yüksek ölçeklenebilir şekilde yönetebilen açık kaynak kodlu bir bulut bilişim platformu olarak tanımlayabiliriz. Cloudstack pek çok firma tarafından özel bulut bilişim platformu olarak kullanıldığı gibi pek çok büyük servis sağlayıcı (Verizon, Sunguard AS v.b.) tarafından müşterilerine genel bulut hizmeti veya hibrit bulut çözümleri sunmak için kulanılmakta.
CloudStack, pek çok kurumun bir IaaS (servis olarak altyapı) çözümünden beklediği : işlem gücü yönetimi (compute orchestration), servis olarak ağ altyapısı ( Network as a service) , kullanıcı ve hesap yönetimi, başarılı bir kullanıcı arabirimi ve açık bir API gibi pek çok özelliği tek bir çözümde birleştiren bir proje. Bu yönüyle pek çok farklı alt projeden oluşan OpenStack'den ayrılıyor.
CloudStack şu anda: VMware, KVM, XenServer ve Xen Cloud Platform (XCP) hypervisorlerini detsekliyor. Microsoft HyperV desteği ise geliştirilme aşamasında ve sonraki sürümlerde CloudStack'a dahil edileceğini bekliyorum..

18 Eylül 2013

Citrix XEN Server Artık Açık Kaynak Kodlu

Citrix uzun bir süredir piyasada ticari XEN Server hypervisor çözümünü açık kaynak olarak herkese açtı. Artık Citrix XEN Server hypervisor, isteyen kullanıcılar tarafından ücretsiz olarak indirilip ekstra lisans maliyeti olmadan XEN Center ile birlikte kullanılabilecek. Diğer yandan Citrix XEN Server'ın ücretli sürümünü de destek dahil olarak satmaya devam edecek. XEN Server Open Source ile ticari sürüm arasında gördüğüm en göze görünür fark Open Source olan sürümde ticari sürümde olan yama yönetimi (patch management) özelliği bulunmaması.

Citrix XEN Server açık kaynak sürümüne http://www.xenserver.org/ adresinde ulaşıp hem hypervisor hem de XEN Center'ı indirebilirsiniz.


25 Ağustos 2013

Açık Kaynak Sanallaştırma ve Yönetimi

Uzun süredir hem VMware ESX, Microsoft HyperV ve Citrix XEN gibi ticari sanallaştırma platformları ile uğraşırken bir yandan da sanallaştırma altyapılarını daha derinlemesine anlamak, ticari ürünlerle yapılan işleri ücretsiz bir şekilde yapabilmek ve açık kaynağın sağladığı hızlı gelişimden yararlanabilmek için Linux çekirdeğine eklenmiş KVM isimli sanallaştırma platformu ile de çok yakından ilgileniyordum. KVM başlangıçta Quamranet isimli bir startup'ın daha çok Desktop Sanallaştırma için geliştirmeye başladığı bir hypervisor iken zaman içinde resmi olarak Linux çekirdeğine dahil oldu sonrasında bu firmayı Redhat satın alarak KVM'nin gelişimini hızlandırdı.

İlk zamanlarda tamamen komut satırından ve Redhat'ın Virtual Machine Manager isimli GUI aracıyla yönetilebilen KVM Redhat'ın Quamranet satın almasından sonra Redhat Enterprise Virtualization (RHEV) ismiyle Redhat tarafından paketlendi ve böylece oldukça başarılı, ölçeklenebilir, web tabanlı bir yönetim arabirimine kavuştu.

Redhat RHEV'i piyasaya sürdükten sonra kodlarını tamamen açarak oVirt isimli bir proje başlattı. ovirt sayesinde Redhat'in RHEV 3.x olarak sattığı sanallaştırma platformuna oVirt ile tamamen ücretsiz olarak sahip olunabilir durumda.


30 Nisan 2013

ESXi 5.X'de Sanal Makinaları Komut Satırından Çalıştırmak

Eğer sizde vCenter sunucunuzu sanal bir sunucu olarak bir ESX host üzerinde tutuyorsanız, ilgili hosta bakım gerektiğinde bir şekilde kapatıp açtığınızda vCenter sunucuyu başlatmak için bu hosta vSphere Client ile doğrudan bağlanmakta sıkıntı yaşıyorsanız aşağıdaki adımları uygulayarak vCenter sunucunuzu komut satırından başlatabilmek oldukça işinizi görecektir. Tabii bu komutu çalıştırmak için ESX host üzerinde SSH açık olması şart.


Önce sanal makinanın ID sini öğrenelim:

vim-cmd vmsvc/getallvms |grep

Not: Komut çıktısının ilk sütunu size bu ID yi gösterir.

ID yi öğrendikten sonra aşağıdaki komut ile VM'in açık ya da kapalı olma durumunu görün:

vim-cmd vmsvc/power.getstate ID

Son olarak aşağıdaki komut ile VM'i çalıştırın

vim-cmd vmsvc/power.on ID

22 Nisan 2013

CentOS 6.3/6.2/6.1/6.0'dan CentOS 6.4'e Upgrade Nasıl Yapılır?

Aslında yum update komutunu vermek kadar kolay bir işlem olan bu upgrade işlemi, bazen istendiği gibi kolay bir şekilde çalışmayabiliyor. yum update komutu çalıştırılmasına rağmen sistemin CentOS 6.4'e geçemediğiniz de görmemiz mümkün. Bu durumda kesin çözümiçin aşağıdaki adımlarını izlemeniz yeterli olacaktır:

# yum clean all
# yum update glibc* yum* rpm* python*
# yum update

Bu işlem bittikten sonra /etc/redhat-release dosyanızı kontrol ettiğinizde CentOS 6.4'e upgrade olduğunuzu göreceksiniz.

14 Şubat 2013

Azure Blob Storage'da Page Blob - Block Blob Farkları


Windows Azure storage konseptleri arasında doğrudan çalışabilirlik ve performansa ciddi bir etken olduğu için, temel olarak bilinmesi gereken kavramlardan biri Bloblardır diyebilirim. Bu yazıda Blob'lar hakkında kısa ve fakat pratik bir kaç notu paylaşmak istiyorum.

Blob Nedir?
BLOB, Binary Large Object kavramının kısaltmasıdır.  Yani blob bir çok ikili(binary) verinin tek bir birimde toplanmasıdır diyebiliriz.

Windows Azure Blob ,Windows Azure Storage hizmetlerinin parçalarından birisidir ve Azure üzerinde metin ve ikili(binary) veri depolamanın en basit yoludur.

Azure Blob Depolama iki farklı blob çeşidinden oluşmaktadır:
1.     Block Blob
2.     Page Blob

Block Blob
Block blob her biri bir blockID'ye sahip block'lardan oluşur. Block blob'lar sıklıkla ağ üzerinden büyük dosyaları yönetirken kullanılmaktadır. Block blobları paralel olarak eş zamanlı upload ederek upload zamanını düşürebilirsiniz. Son olarak en büyük block büyüklüğü 4MB olduğunu da belirtmeliyim.

Page Blob 
Page blob 512 bytelık sayfaların bir toplamıdır. Page blob'ı eğer kullanıcı rastgele okuma yazma işlemi yapacağı zaman kullanabilirsiniz.

Page Blob ve Block Blob'u Nerelerde Kullanabilirsiniz? 
Bu konuyu daha iyi anlatabilmek için bir senaryo üzerinden gidersek: Diyelim ki biz medya dosyalarını depolamak için bir uygulama geliştireceğiz. Bu durumda medya dosyaları sanal makina için bir VHD ve video dosyalarını bir arada içerecektir. Peki hangi içerik için hangi blob depolama türünü kullanacağım ?


Yukarıdaki tanımlardan gidersek oldukça kolay bir şekilde cevaplayabiliriz. VHD bir sanal makina olacağı ve çok yoğun bir şekilde okuma yazma işlemleri içerdiği için page blob olmalıdır (burada bir öneri olarak değil bir zorunluluk olarak söylüyorum eğer VHD'niz page blob değil de block blob ise Azure üzerinde bir makinaya takıp boot edemezsiniz). Diğer taraftan da video dosyaları büyüklükleri upload avantajı düşünülerek Block blob şeklinde ayarlanmalıdır.

11 Şubat 2013

AWS'de 30 GB'den Büyük C Diskli Windows Oluşturmak

Konu Double-Take olunca hedef sunucu olarak Windows Azure dışında başka Cloud platformlarını da denemek gereksinim haline geliyor. İşte bu nedenle Windows Azure'dan sonra yine en az Azure kadar yaygın kullanılan (belki çok daha yaygın) Amazon Web Services'in IaaS hizmeti olan Elastic Compute Cloud (EC2) u denemeye başladım. 

Test için kullanacağım kaynak sunucum 90 Gb C: diski ve 250 Gb D: diski olan bir Windows 2008 R2 olduğu için Double-Take Full Server Failover senaryosuna göre hedefinde en azından bu iki drive'a sahip olması ve hedefteki bu iki drive'ın içindeki verileri alabilecek büyüklüğe sahip olması gerekiyordu. Ancak AWS'de var olan Windows 2008R2 Image'leri (AMI) sadece 30 GB bir C: diskine sahipti. 

Bu durumda C: diskini nasıl büyüteceğim konusunda neler yapabileceğimi araştırdığımda zaman içinde bu sorunla pek çok kişinin karşılaştığını ancak AWS tarafında bu sorunun çözümünün oldukça kolay ve kısa sürede yapılabilir olduğunu gördüm. Eğer sizin de bir gün böyle bir şey ihtiyacınız olursa aşağıdaki adımları uygulayarak varsayılan 30 GB'dan büyük bir C: diskine sahip olabilirsiniz.



  1. Öncelikle diskini büyüteceğiniz makinayı kapatın.
  2. AWS Console'dan Volumes bölümüne gidip 30 GB'lik volume'ü seçip sağ tıklayın ve snapshot alın.
  3. Snaphots bölümüne gidip oluşturduğunuz Snapshot'a sağ tıklayın ve Create a volume from the snapshot seçeneğini seçip daha büyük bir boyut (örn: 100 Gb) yazın ve yeni büyük bir volume oluşturun.
  4. Volumes bölümüne tekrar dönüp küçük diski (30 Gb) seçin ve sağ tıklayıp detach edin.
  5. Şimdi büyük olan diske (100 Gb) sağ tıklayın ve ilgili makinaya Attach edin.
  6. Sonrasında Instances bölümüne gidip makinayı açın
  7. Ve son olarak Denetim Masasından  Disk Management aracını açıp diski genişletin.

10 Şubat 2013

Windows Azure ve Yenilikler

Daha önce adını sanını çok duyup ancak sadece Microsoft'un Bulut platformu diye bildiğim Windows Azure ile; Microsoft ve Double-Take arasında bir iş birliği imkanı sayesinde 2012 Kasım ve Aralık aylarında çok daha yakından tanışma imkanı bulmuştum. Microsoft ile birlikte Double-Take'in Azure ortamında iş sürekliliği ve felaketten kurtarma demosu yapmak için kolları sıvadığımda Azure'un güzel yönlerini ve geliştirilmesi gereken eksik yönlerini uygulamalı bir şekilde görmüş oldum. (Bu demoyu hazırlarken öğrendiğim önemli noktaları bir ya da bir kaç yazıda toparlayıp yine not olması açısından buraya koyacağım).

Burada şunu söylemeliyim Windows Azure PaaS denilen platformun bir servis olarak verildiği Bulut Bilişim alanında gerçekten pek çok rakibinden çok daha iyi bir durumda. Tabii özellikle .NET ve SQL Server tabanlı geliştirme ortamlarında rakipsiz desek yeri var. Buna karşın özellikle IaaS denilen altyapının servis olarak verildiği alanda ise benim Microsoft'un tek gerçek rakibi olarak gördüğüm Amazon Web Services'e göre daha bir miktar geride. Zaten Microsoft  da sanırım bunu kabul ediyor ki bu hizmetler şu an Azure Management Console'da Preview aşamasında görüntüleniyor.

Buna bağlı olarak Microsoft Windows Azure platformuna her geçen gün yeni özellikler ekleyerek geliştirmeye devam ediyor. Bu geliştirmelerin en yüklüsü 2012 Aralık ayı sonunda Microsoft'un Azure ekibinin başında olan  Scott Guthrie'nin blogunda ayrıntılı bir şekilde duyuruldu. Bu geliştirmeleri aşağıda sıraladım.


  • Mobil Servisler (görev zamanlayıcı desteği,Avrupa bölgesi desteği, komut satırı desteği)
  • Web Siteleri (ölçekleme iyileştirmeleri, entegre kaynak kontrolü)
  • SQL Data Sync (yeni HTML portalde destekleniyor)
  • ACS Yönetimi (yeni HTML portalde destekleniyor)
  • Medya Servisleri (iş ve görev yönetimi, blob depolama desteği, ayrılmış bilgi işlem gücü)
  • Sanal Ağ geliştirmeleri
  • Abonelik Filtreleme Desteği
  • Windows Azure Store (şimdi daha pek çok ülkeden ulaşılabilir)
Bu geliştirmeler arasında benim en kayda değer gördüğüm Sanal Ağ seçeneklerinin biraz daha basitleştirilmesini sağlayan Quick Create seçeneği. Bu özellikle pek çok kişi ile birlikte benim de bir miktar karışık bulduğum ayarlamalara bir kolaylık getirmiş Microsoft.

Azure Virtual Network






1 Ocak 2013

VMware ESX'de Management Network İkinci IP eklemek

Eğer bir datacenterda tutulan dedicated bir VMware ESX sunucunuz varsa default olarak tek bir interface aktif olarak gelir ve bu interface'e public bir IP doğrudan atanmış olur. Ancak bazı durumlarda ESX host'u içeride bir private IP bloğundaki sunucularla veya pcler ile birbirine bağlanamanız gerekebilir ( örneğin aynı ESX host üzerine bir vCenter Server kurarsanız). Bu durumda ESX CLI dan aşağıdaki komutları vererek aynı vSwitch'e bağlı tek bir interface 2. bir IP (alias) verebilirsiniz.

Bu komutlarla vswitch'in o anki durumunu görebilirsiniz.

# esxcfg-vswitch -l Switch Name Num Ports Used Ports Configured Ports MTU Uplinks vSwitch0 128 6 128 1500 vmnic0,vmnic1 PortGroup Name VLAN ID Used Ports Uplinks VM Network 0 2 vmnic0,vmnic1 Management Network 0 1 vmnic0,vmnic1 # esxcfg-vmknic -l Interface Port Group/DVPort IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type vmk0 Management Network IPv4 192.168.0.62 255.255.255.0 192.168.0.255 00:0c:29:1d:80:05 1500 65535 true STATIC


# esxcfg-vswitch -A "VPN Network" vSwitch0 (Bu komutla mevcut vSwitch'e yeni bir port grubu ekliyoruz.
# esxcfg-vswitch -l (bu komutla eklediğimiz port grubu görebiliriz.) Switch Name Num Ports Used Ports Configured Ports MTU Uplinks vSwitch0 128 6 128 1500 vmnic0,vmnic1 PortGroup Name VLAN ID Used Ports Uplinks VPN Network 0 0 vmnic0,vmnic1 VM Network 0 2 vmnic0,vmnic1 Management Network 0 1 vmnic0,vmnic1


Son olarak yeni oluşturduğumuz port grubuna yeni bir IP atıyoruz.

# esxcfg-vmknic -a -i 10.15.5.62 -n 255.255.255.0 "VPN Network" # esxcfg-vmknic -l
Interface Port Group/DVPort IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type vmk0 Management Network IPv4 192.168.0.62 255.255.255.0 192.168.0.255 00:0c:29:1d:80:05 1500 65535 true STATIC vmk1 VPN Network IPv4 10.15.5.62 255.255.255.0 10.15.5.255 00:50:56:7f:8e:58 1500 65535 true STATIC