8 Haziran 2016 Çarşamba

WINDOWS 10 DESKTOP’TA DOCKER’I KULLANARAK HYPER-V CONTAINERS OLUŞTURMA VE ÇALIŞTIRMA NASIL YAPILIR


Bildiğiniz gibi windows ınsider programı bizlere windows 10 içinde Hyper-V üzerinde Container oluşturmamıza imkan sağladı.
Peki bu Container nedir ?
Container, kısaca yeni nesil sanallaştırma diyebileceğimiz, farklı uygulama platformalarının tek bir işletim sisteminde çalışmasıdır diyebiliriz.
Container kavramını docker ile birlikte anılması esasında tesadüf değildir. Peki bu Docker nedir?
Docker aslında bir sanallaştırma platformudur. Docker işletim sistemi imajlarını versiyonlayan, Apache lisanslı go dili ile yazılmış bir konteyner teknolojisidir.
Docker, linux işletim sistemi üzerinde çalışan bir uygulamadır. Docker’ın sanallaştırma yapısı, bilinen sanal makinelerden farklı olarak bir hypervisor katmanına sahip olmamasıdır. Bu yazılım, Docker engine üzerinden üzerinde çalıştığı işletim sistemine erişerek sistem araçlarını paylaşımlı olarak kullanmaya imkan sağlamaktadır. Bu aşamada doğal olarak akıllara, “Peki bu bize ne fayda sağlamakta” diye bir soru aklımıza gelir.
En önemli fayda, benim pc’de çalışıyordu. Neden sunucu(server) da çalışmıyor sorusunu ortadan kaldırmıştır. Bu platform sayesinde web sistemlerinin kurulumu, testi ve dağıtımı hızlıca yapabilir hale gelmektedir.
Örnek vermek gerekirse, python ile bir web yazılım geliştirildiğini farz edelim. Bunu dockersız ortamda çalıştırmamız için öncelikle;
·         Pip, python,virtualenv .. vb gibi araçların kurulması,
·         Django sunucusu kur,
·         Nginx, reverse proxy ayarları yap,
·         VM kur,
·         İşletim sistemi kur…. Vb gibi daha bir çok araç kurulumu gerekmektedir.
Eğer uygulamanız bir veritabanı kullanıyor ise ( ki kullanmalı) bu süreç daha da uzun sürecektir.
Docker esasında tam bu noktada ortaya çıkıyor, yapılması gereken tek şey tüm komutları tek bir dockerfile dosyasına yazıp, imajını oluşturup, istenildiği kadar sayıda sunucuya bunu gönderiyorsunuz.
Bu imajları Docker Hub gibi sitelerde tutup istenildiğinde hazır imajları alıp kullanabiliyorsunuz.
Docker, LXC sanallaştırma mekanizmasını kullanan ve container denilen birimlerde çalışmaktadır. Kurulacak sunucunun gücüne bağlı olarak binlerce container’ı tek bir makine (bu VM’de olabilir.) çalıştırabiliyorsunuz. Container imajları ortak olan sistem dosyalarını paylaşmakta ve bu sayede disk tasarrufu sağlamaktadır. Klasik VM’lerde ise her bir uygulama için ayrı bir işletim sistemi imajı ve dosyalar ayrılmak zorunda kalınmaktadır.

Resim -1-
Docker ve Container ile ilgili daha detaylı bilgileri ise internet üzerinden oldukça fazla bilgiye ulaşabilirsiniz.
Microsoft da Docker ile anlaşma yaparak, Windows Container adı altında 2 tip container mantığını bu dünyaya kazandırdı.
Microsoft tarafında container,  Windows Container ve Hyper-V Container.
Bu yazımda Windows 10 işletim sisteminde Hyper-V üzerinde container kurulumunun nasıl yapıldığından bahsedeceğim.
Öncelikle Hyper-V Containers, sadece Windows 10 Professional, Enterprise ve Education sürümlerinde çalışmaktadır.
                İlk yapılması gereken, control panel, windows features on or off sekmesinden Hyper-V ve Containers seçeneklerinı kurun.

Resim -2-
Bu iki komponent’i kurduktan sonra bilgisayarı restart edin.
Pc açıldıktan sonra PowerShell konsolunu Administrator modunda açın ve aşağıdaki komutu çalıştırın. Bu komut ile kısıtlanmış dış policy’lere izin veriyoruz.
Set-ExecutionPolicy Unrestricted
Daha sonra container Image paketini yükleyin.
Install-PackageProvider ContainerImage -Force komutu ile yükleyin. Resim-3-

Resim-3-
Bu paket,  temel işletim sistemi görüntülerini Hyper-V Container’ın çekmesine izin verecektir.
Bu örnek’te Hyper-V Container’ı çalıştırmak için Nano Server base container imajını çekmesi için kullanılacaktır. Nano Server İmajını çekmek için Install-ContainerImage NanoServer komutunu çalıştırın. İnternet bağlantısının hızına göre indirme işleminin hızı değişecektir.
Container imajı indirildikten sonra artık Docker’ı bilgisayarınıza kurabilirsiniz. Kurulum işlemini isterseniz bir PS script’i ile de yapabilirsiniz. http://aka.ms/tp5/update-containerhost  linkindeki script’i bilgisayarınıza keydetin ve script’i çalıştırın. Bu script, docker client, Docker Deamon ve tüm bileşenleri ve konfigürasyonları download edecektir.  Resim-4-

Resim-4-
Tüm kurulumlar tamamlandıktan sonra Docker komutlarını Hyper-V Containers da çalıştırabilir durumda olacaksınız.
Docker images komutunu kullanarak bilgisayarınızda var olan tüm imajları görüntüleyebilirsiniz. Resim-5-

Resim-5-
Docker tag’larının istenilen bir bir imaj’da çalıştırmak için docker tag komutunu kullanarak yapabilirsiniz. Resim-6-

Resim-6-
Bundan sonra Administrator yetkisi ile CMD ekranı açın. Aşağıdaki komutu kullanarak yeni bir Hyper-V container’ı oluşturun. Resim-7-
docker run –it –isolation=hyperv nanoserver cmd
Birkaç dakika sonra Hyper-V Container’ı ile çalışmaya başlayacaksınız. Resim-8-


Resim-7-
Kaynak:
 MSDN


22 Nisan 2016 Cuma

POWERSHELL İLE TEMEL NETWORK KONFİGÜRASYONLARI

POWERSHELL İLE TEMEL NETWORK KONFİGÜRASYONLARI

IP konfigürasyonunu görmek
Get-NetIPConfiguration
Tüm Network Adaptörlerini görmek
Get-NetAdapter
Network Adaptörünü isimlendirmek

Get-NetAdapter -Name *Ethernet*
Detaylı Network Konfigürasyonlarını görmek
Get-NetAdapter | ft Name, Status, Linkspeed, VlanID
Driver bilgilerini görmek
Get-NetAdapter | ft Name, DriverName, DriverVersion, DriverInformation, DriverFileName
Network Adaptörünün donanım bilgilerini görmek

Get-NetAdapterHardwareInfo

Network Adaptörünü etkinleştirmek  ve devre dışı bırakmak
Disable-NetAdapter -Name "Wireless Network Connection"
Enable-NetAdapter -Name "Wireless Network Connection"

Network Adaptörünün adını yenilemek
Rename-NetAdapter -Name "Wireless Network Connection" -NewName "Wireless"
POWERSHELL İLE IP KONFİGÜRASYONU YAPMAK
IP ve DNS bilgilerini görüntülemek
Get-NetAdapter -Name "Local Area Connection" | Get-NetIPAddress
Sadece IP adresini görüntülemek
(Get-NetAdapter -Name "Local Area Connection" | Get-NetIPAddress).IPv4Address
DNS bilgilerini görüntülemek
Get-NetAdapter -Name "Local Area Connection" | Get-DnsClientServerAddress
IP ADRES ataması yapmak
New-NetIPAddress -InterfaceAlias "Wireless" -IPv4Address 192.168.1.95 -PrefixLength "24" -DefaultGateway 192.168.1.1
Varolan IP adresini değiştirmek
Set-NetIPAddress -InterfaceAlias "Wireless" -IPv4Address 192.168.12.25 -PrefixLength "24"
IP Adresini kaldırmak
Get-NetAdapter -Name "Wireless" | Remove-NetIPAddress
DNS Server girmek
Set-DnsClientServerAddress -InterfaceAlias "Wireless" -ServerAddresses "10.10.20.1","10.10.20.2"
Bir interface (arayüz)’de DHCP’yi etkinleştirmek
Set-NetIPInterface -InterfaceAlias "Wireless" -Dhcp Enabled

POWERSHELL İLE PİNG KOMUTLARI
Ping atmak
Test-NetConnection -ComputerName www.ahmetmutlu.blogspot.com
Birden fazla ip’ye ping atmak
1..99 | % { Test-NetConnection -ComputerName x.x.x.$_ } | FT -AutoSize

Trace atmak
Test-NetConnection www.ahmetmutlu.blogspot.com  TraceRoute

Açık portları görmek
Test-NetConnection -ComputerName www.ahmetmutlu.blogspot.com -Port 80
Test-NetConnection -ComputerName www.ahmetmutlu.blogspot.com -CommonTCPPort http

NSLOOKUP
Resolve-DnsName www.ahmetmutlu.blogspot.com
Resolve-DnsName www.ahmetmutlu.blogspot.com -Type MX -Server 8.8.8.8

ROUTE
Get-NetRoute -Protocol Local -DestinationPrefix 192.168*
Get-NetRoute -InterfaceAlias Wi-Fi
New-NetRoute –DestinationPrefix "10.0.0.0/24" –InterfaceAlias "Ethernet" –NextHop 192.168.1.1

NETSTAT
Get-NetTCPConnection
Get-NetTCPConnection –State Established

NIC TEAMING
New-NetLbfoTeam -Name NICTEAM01 -TeamMembers Ethernet, Ethernet2 -TeamingMode SwitchIndependent -TeamNicName NICTEAM01 -LoadBalancingAlgorithm Dynamic


SMB KOMUTLARI
SMB Client bilgileri
Get-SmbClientConfiguration

SMB CONNECTION
Get-SmbConnection

SMB Mutlichannel Connection
Get-SmbMutlichannelConnection

SMB Açık dosyaları görmek
Get-SmbOpenFile

SMB Direct (RDMA) adaptörlerini görmek
Get-NetAdapterRdma

Hyper-V Network komutları
Get and set Network Adapter VMQ settings
Get-NetAdapterVmq
# Disable VMQ
Set-NetAdapterVmq -Enabled $false
# Enable VMQ
Set-NetAdapterVmq -Enabled $true
VM Network Adapter
Get-VMNetworkAdapter -VMName Server01
VM Network Adapter IP Adresini görmek
(Get-VMNetworkAdapter -VMName NanoConHost01).IPAddresses
VM Network Adapter Mac Addresses görmek
(Get-VMNetworkAdapter -VMName NanoConHost01).MacAddress



3 Mart 2016 Perşembe

Hyper-V için Nexus 1000V kurulumu ve SCVMM ile entegrasyonu e-book

       merhabalar;
Eski sürümü üzerine bir takım değişiklikleri düzenleyerek tekrar yayınladım. Umarım yardımcı olur.

      Uzun süredir kapsamlı bir yazı dizisine başlamaya niyetim vardı.
      Cisco'nun yeni ürünü olan Nexus 1000V'nin çıkması ile birlikte Hyper-V ve SCVMM ile entegrasyonu ile ilgili türkçe kaynak eksikliğinden dolayı hem network hem de bilgi sistemleri çalışanları için elimden geldiğince adım adım kurulum dökümanı oluşturmaya çalıştım.
      Kurulum dökümanı biraz kitapçık gibi oldu. Bu yüzden parça parça değil de e-book şeklinde yayınlamayı düşündüğüm için BURADAN indirebilirsiniz.

Umarım yardımcı olur.


2 Ocak 2016 Cumartesi

Hyper-V Replikasyon Yönetimi

Replikasyonu sağlanan sanal makine, Replikasyon ile ilgili bizlere 6 seçenecek sunmuştur.

Resim-1
  • Failover
  • Test Failover
  • Pause Replication
  • Extend Replication
  • View Replication Health
  • Remove Replication
Failover
Kaynak sanal makinenizin düşmesi durumunda failover diyerek belirtmiş hedef Hyper-V host üzerinde sisteminizin devam etmesini sağlar. Failover seçildikten sonra eğer birden fazla kurtarma noktası(recovery point) belirlendiyse bu seçeneği sorucaktır. İlgilendiğiniz zaman dilimini seçtikten sonra belirlediğiniz Failover TCP/IP (ağ ayarları) ile hedef Hyper-V Host üzerinde sanal makineniz üretimine devam edecektir.

Resim-2
Test Failover
Kaynak sanal makinenizin sağlıklı şeki ve replikasyonun gerçekleştiğini görmek için test failover yapılır. Belirttiğiniz kurtarma noktası ile o zaman ki sistemin sağlıklı olup olmadığını görebilme imkanı sağlar.

Resim-3
Pause Replication
Hyper-V host ile ilgili farklı bir operasyonunuzun olduğu zamanlarda görevi durdurabilirsiniz. İşiniz bittikten sonra Resume Replication diyerek replikasyona devam edebilirsiniz.

Resim-4
Extend Failover
Replikasyonu oluşan makineyi farklı bir noktaya da replikasyonunu sağlayabilirsiniz. Önceki kısımlarda replikasyonun nasıl gerçekleştiğinden bahsetmiştik.
View Replication Health
Replikasyonun durumunu açılan pencerede görebilirsiniz. Bu bilgilerde mevcut hostun, replike edilen hostun suffixleri, replikasyonun durumu, Replikasyonun ne zaman başladığı, ne zaman bittiği, data boyutları, replikeyi bekleyen data boyutu gibi bilgiler yer almaktadır. 

Resim-5
Remove Replication
Oluşturduğunuz replikasyonu silebilirsiniz.
Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.
Referanslar

20 Mayıs 2015 Çarşamba

Hyper-V İçin Nexus 1000V konfigürasyonu - 1-

Merhaba;
Bugünden itibaren Hyper-V için üretilmiş olan Nexus 1000v for Hyper-V ürünün konfigürasyonu ve yönetimi ile ilgili sık sık yazılar yazmaya başlıyorum. Daha önce pdf olarak paylaştığım Hyper-V, SCVMM ve Nexus 1000V entegrasyonu ile ilgili pdf'i baz alarak Nexus 1000V konfigürasyonunu örnekler ile anlatmaya çalışacağım.
öncelikle bir kaç detaydan bahsetmek gerekmektedir. 
cisco komutlarına ve Vmware üzerinde Nexus 1000V kullanan arkadaşlarımız için üzücü bir haber vermek istiyorum. 
Maalesef Nexus 1000V for Hyper-V ürünü temel düzeyde cisco'nun mevcut komutlarından daha farklı olmakla beraber vmware için ise hyper-v network mimarisinin daha genişletilmiş olması sebebi ile network segmentation alanında çok daha farklı bir konfigürasyon gerektirmektedir. 

hızlı bir şekilde aşağıda kullanacağımız komutların esasında ne işe yaradığına bir bakmamız gerekecektir. 

  • Logical Network - Mantıksal Ağ olarak da isimlendirilebilir. Genel olarak kullandığımız networktür. örnek olarak DMZ bir logical netwok'tür diyebiliriz. 
  • Segment Pool - Logical Network'e ait segmentlerden oluşmuş A collection of segments that belongs to a logical network. For example, they might be for different sites, such as one pool for RTP, and one pool for SJ.
  • Segment - This is where the access capabilities of a network are defined. This is where you assign VLANs.
  • Port-Profiles - A collection of policies, not connectivity. Quality of Service (QoS), Access Control List (ACL) and others belong here.
  • IP Pool - This gets assigned to a segment. In most cases it does not matter. But, when doing orchestration, SCVMM can automatically assign addresses from this pool.
  • Ethernet - This is an uplink from the host. Each set of uplinks allows a certain segment pool.
  • vEthernet - This is the interface of a VM. It inherits a port-profile for its policies and a segment for its VLAN.
  • VMnetwork - This is the segment combined with the IP pool on the SCVMM side.
  • Port-Classification - This refers to the port-profile policies in SCVMM.
için network segmentatıon manager ve http server konfigürasyonu


1.  ahmetvm1-hyperv#
 ahmetvm1-hyperv# configure terminal
 Enter configuration commands, one per line.  End with CNTL/Z.
ahmetvm1-hyperv(config)# feature network-segmentation-manager
 ahmetvm1-hyperv(config)# feature http-server
 ahmetvm1-hyperv(config)#