Bu yazımızda cPanel için Zor şifre protokolünü aktif etmeyi gözlemleyeceğiz.
Öncelik ile, Arama alanımıza Password yazıyoruz.
Böylece, Security Center altında, Password Strength Configuration alanını gözlemleyebileceğiz. Bu kısıma giriş yapıyoruz.
Menü
Ardından, Default Required Password Strength kısmını 100’e çıkarıyoruz.
Default değer 100 olarak düzenleneceği için, diğer kısımları Default olarak bırakabiliriz.
Şifre Zorluk Alanı
Ardından Save butonuna basarak ayarı kayıt ediyoruz.
Bu işlem sayesinde, Oluşturulacak her şifre yüksek güvenlik gerektiren &y6’^3jGH@BK% gibi bir şifre olacaktır.
Önemli Not: Webmailler üzerinden bu şifreler değiştirilememektedir. Daha basit bir şifre ile değişim sağlayabilmek için kullanıcının shell (SSH) erişimi olması şart.
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz tar -zxvf freetds-patched.tar.gz cd freetds-1.00.86/ (Bu sürüm build numarası değişebilir) ./configure --prefix=/usr/local/freetds make make install
Komutlarını uyguluyoruz.
Ardından, DirectAdmin Custombuild’e PHP de MSSQL lib’lerinin de derlenmesini istediğimizi belirtmeliyiz.
cd /usr/local/directadmin/custombuild/configure/ap2
Şeklinde ilerleyin. Burada, sunucuda hangi PHP kurulu ise (Hangi conf dosyası kullanılacağı) ona göre seçmeliyiz.
Örnek sunucuda php -v komutu ile php 5.5 kurulu olduğunu tespit ediyorum, yani configure.php55 dosyasını düzenlemeliyim.
Dosya içerisinde, en son satırı diğer satırlarda gördüğümüz gibi \ ekleyerek devam belirtip hemen altına
--with-mssql=/usr/local/freetds
Şeklinde ekliyoruz.
Ardından,
cd /usr/local/directadmin/custombuild ./build clean ./build php d
CloudLinux kurulu DirectAdmin bir sunucuda PHP Selector’a ya da LVE Manager’a girmek istediğinizde aşağıdaki hatayı alıyor iseniz;
Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in /usr/local/directadmin/plugins/lvemanager_spa/admin/index.html on line 11 Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in /usr/local/directadmin/plugins/lvemanager_spa/admin/index.html on line 11 Parse error: syntax error, unexpected T_STRING in /usr/local/directadmin/plugins/lvemanager_spa/admin/index.html on line 11
Bu PHP Sürümünüzün min. gereksinim olan PHP 5.4 ten düşük olduğunu gösterir. CloudLinux LVE Manager ve PHP Selector, PHP 5.4 altında çalışmıyor.
Bunun için Sadece LVE ve PHP Selector’ün farklı bir PHP üzerinden çalışması adına bir takım düzenlemeler yaparak çözüm üretebilirsiniz.
Öncelik ile kurulu değil ise multiphp kurun. Bu PHP lerden birini kullanacağız.
yum groupinstall alt-php
Ardından Hangi PHP sürümünü kullanacak isek JSON’u aktif edeceğiz.
Mesela PHP 5.6 olsun. Alt-PHP olarak kurulan PHP 5.6 nın veri yolu;
Kabaca yaptığımız, direkt olarak sunucunu native PHP sürümünü kullanarak bu sayfayı sunmak yerine kendi belirlediğimiz PHP 5.6 nın bu sayfayı sunmasını sağlamak.
cPanel lisans ücretleri sebebi ile, cPanel kullanan pek çok firma çok daha uygun bir alternatif olan DirectAdmin Panel’e geçiş yapmaktadır.
Bu yüzden, ilgili dökümanı size yardımcı olabilmek adına paylaşmayı uygun gördüm.
Bu dökümanda, cPanel kurulu sunucunuzu yedeklemek, Yedeklerinizi DirectAdmin panel kurulu sunucunuza aktarmak, cPanel formatındaki yedeğinizi DirectAdmin formatına dönüştürmek ve ardından yüklemek için gerkeli işlemlerin tamamı yer almaktadır.
Öncelik İle Bilmeniz Gerekenler, Uyarılar ve Öneriler
– cPanel’de mdbox formatına sahip olan mail adreslerinin transferleri test edilmemiştir. – Mailman mail listeleri, majordomo mail listelerine dönüştürülmemektedir. – DirectAdmin’in MySQL veritabanı formatı, kullanıcıadı_dbadı ve kullanıcıadı_dbkullanıcıadı şeklindedir. cPanel de aynı formata sahip ancak karakter sınırlaması size sorun oluşturabilir. (Bkz: https://forums.cpanel.net/threads/username-length-limits.630671/ )
Yedek dönüşüm scripti bu durumlarda kullanıcı adını otomatik olarak kısaltabilmektedir. Ancak, Bu durumlarda sitelere ait veritabanı bilgilerini (Örneğin WordPress için wp-config.php dosyasını) manuel olarak düzenlemeniz gerekebilmektedir. (Detaylı bilgilendirme makalenin devamında sunulmuştur)
Bu durum yaşandığında örnek script çıktısı aşağıdaki gibidir;
Çıktı: WARNING! us_wordpress cannot be owned by user, renaming database user to user_wordpress
– DirectAdmin panel, cPanel’den daha farklı özellikler sunmaktadır. Nginx, Openlitespeed, MySQL8, rspamd vb. avantajları olsa da PostgreSQL ya da Ruby benzeri destekleri bulunmamaktadır. Bu özelliklere sahip sitelerinizi manuel olarak aktarmanız gerekecektir.
– Öntanımlı olarak kullanıcı adları, max 10 karaktere sahip olabilir. cPanel kullanıcılarınızın karakter limitlerini öğrenmek için;
ls /var/cpanel/users | awk '{print length, $0}' | sort -nr | head -n1
Komutunu kullanabilirsiniz. 10 karakterden uzun kullanıcı adları mevcut ise DirectAdmin’de karakter limitini;
/usr/local/directadmin/conf/directadmin.conf
Dosyasının içerisinde bulunan “max_username_length” satırını düzenleyerek değiştirebilirsiniz. Bu işlemi yapmamanız halinde ilgili kullanıcı convert edilmez ve;
Max username length (X) is smaller than cPanel username (Y)
Hatasını alırsınız.
Örneğin, Pratik bir şekilde Kullanıcı adı karakter limitini örneğin 20 yapmak için;
/usr/local/directadmin/directadmin set max_username_length 20 ; service directadmin restart
Komutunu kullanabilirsiniz.
Önemli NOT: DirectAdmin sunucularınızda MySQL sürümünüz 5.7.8 den düşük ise, mutlaka bunu güncellemelisiniz. MySQL 5.7.8 öncesi sürümler 16 karakter destekleyebildiği ve DirectAdmin’de MySQL adı kullanıcı_adı + Database_adı şeklinde olduğu için daha çok karaktere gereksinim duymanız halinde MariaDB 10.x üstü ya da MySQL 5.7.8 üstü sürüme sahip olmalısınız.
Öncelik ile en uzun kullanıcı adı ile tek bir siteyi denemenizi önermekteyim. Deneme başarılı olur ise gönül rahatlığı ile tüm sunucunun aktarım işlemine başlayabilirsiniz.
İşlemlere başlayalım;
CPANEL’DEN DIRECTADMIN’E MIGRATION İŞLEMLERİ
Tüm Sunucunun aktarılması için adım adım yapılacaklar aşağıda yer almaktadır;
cPanel Sunucu:
1) Öncelik ile cPanel sunucu üzerindeki tüm hesapları /home/yedekler isimli bir klasöre alalım. (İşlem öncesi en az kullanılan disk alanı kadar boşta disk alanınız olduğundan emin olmanız önerilir. Eğer yeterli disk alanınız bulunmuyor ise makalenin en sonunu inceleyebilirsiniz.)
Komutlar;
mkdir -p /home/yedekler for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/yedekler; }; done
Bu komut, bütün hesapların yedeğini /home/yedekler klasörüne almaya başlayacaktır. Komut tamamlandığı zaman;
2) /home/yedekler içeriğini DirectAdmin kurulu sunucumuza aktaralım.
Bu işlemlerin ardından cPanel sunucumuzda işlemlerimiz bitti, Convert ve Restore işlemleri için DirectAdmin sunucumuza geçiyoruz.
DirectAdmin Sunucu:
1) Tüm cPanel türündeki Yedeklerinizi DirectAdmin üzerine Restore etmeden önce doğru izinleri tanımlamalıyız. Sahipliği atamak için komutumuz;
cd /home/admin/admin_backups ; chown admin.admin *
Şeklindedir.
2) Ardından DirectAdmin’e cPanel yedeklerini yükleyebilmesi için gerekli Conversion aracını yüklememiz gerekiyor.
Bunun için komutlarımız;
cd /usr/local/directadmin/custombuild ./build update ./build cpanel_to_da chown -R admin. /home/admin/converted_user_backup
Şeklindedir.
Artık ilgili cpanel yedeğini, sanki normal bir DirectAdmin yedeğiymiş gibi DirectAdmin sunucunuza kontrol paneli üzerinden geri yükleyebilirsiniz.
DIRECTADMIN SUNUCUDA YEDEKLERİ YÜKLEME İŞLEMLERİ
Bunun için;
Admin düzeyinde DirectAdmin sunucumuza giriş yapalım. “Admin Backup/Transfer” kısmına giriş yapalım. Restore Backup sekmesine giriş yapalım.
Burada, Yedek nereden yüklenecek – From where alanını cpanel den convert ettiğimiz yedeklerimizi gösterecek şekilde; “/home/admin/admin_backups” şeklinde düzenliyoruz.
IP olarak normalde, Convert işlemini gerçekleştirdiğimiz sunucunun ana IP adresi baz alınacak. Ancak Yedeği yükleyeceğimiz sunucunun IP adresi farklı olduğu için burada manuel müdahale etmemiz gerekiyor.
IP seçme kısmında – Select IP kısmında “Use the IP from the list” seçeneğini kullanarak sunucuya ait herhangi bir IP seçmeniz gerekiyor. (Tercihen sunucunun ana IP adresi)
Bu işlemde, yedekteki sitelerin tamamını seçtiğiniz IP yi kullanarak oluşturmasını sağlıyorsunuz.
Son olarak ta yüklenecek siteleri, Select Files kısmından seçiyoruz.
Yedekleriniz burada yer alacaktır.
NOT: Yedekleri görmüyor iseniz Nereden – From Where alanında /home/admin/admin_backups klasörünü gösterdikten sonra Güncelleme butonunu kullandığınızda gözlemleyebiliyor olmalısınız. (Update Files)
Eğer işlem sonrası hala gözlemleyemiyor iseniz sahiplik izinlerini admin.admin vermemiş olmanızdan kaynaklanacaktır, “DirectAdmin Sunucu” kısmındaki 1. adımı gerçekleştirmeniz yeterlidir.
Yüklemek istediğiniz yedeklerinizi seçerek Submit butonu üzerinden işlemi başlatmanız yeterli.
İşlem bu kadardır, bu sayede cPanel sunucunuz üzerinden yedeklerinizi alarak DirectAdmin kurulu bir sunucuya aktarıp yükleme işlemini gerçekleştirebilirsiniz.
NOT:Script, public_html içerisinde eski veritabanı adı ve eski veritabanı kullanıcı adı geçen alanları arar ve bulduklarını otomatik olarak düzeltir. Yani temel olarak veritabanı adı değiştiği durumlarda aksiyon almanız gerekmez ancak veritabanı bilgileriniz şfireli ise, ya da uzaktan erişiliyor ise kontrol sağlamanız gerekecektir. WordPress sitelerin tamamında veritabanı adını değiştirmesi gerekir ise yeni bir wp-config.php dosyası oluşturarak yeni oluşturduğu adı girecek şekilde düzenlenmiştir. Ancak çoğu zaman Database kullanıcı adını düzenleyemeyebilir. Bu durumda manuel kontrol sağlamanız gerekmektedir. Eski WordPress sitelerin tamamında, Veritabanı üzerinde sunucuya özel veriyolu yer aldığı için veritabanları üzerinde optimizasyon gerçekleştirilmesi gerekebilir.
Aynı şekilde, bazı siteler sunucuya özel kodlama barındırabilir. Bu sitelerin içerisindeki spesifik kodlama script tarafından düzenlenememekte olup manuel olarak tarafınızca ya da yazılımcılarınızca düzenlenmelidir.
Veritabanı bağlantı bilgileriniz, ioncube / base64 vb. yöntemler ile şifrelendi ise bu dosyaları manuel olarak düzenleyerek tekrar şifreleyerek aktarmanız gerekecektir.
NOT: Eğer yeterli disk alanınız mevcut ise /home/yedekler klasörünü bir kaç hafta sunucuda bırakmanızı öneririm. İhtiyacınız olabilecek, DirectAdmin sunucuda eksik olan herhangi bir dosya tespit ederseniz buradan rahatlıkla alabilirsiniz.
Peki, işlemleri tamamlamış olsak ta ya cPanel sunucunuzda tüm sitelerinizin yedeğini tek seferde alacak disk alanı mevcut değil ise?
Bu durumda doğal olarak yukarıda işlenen bilgilerin hiç biri size yardımcı olamayacak. Ancak bu tabi ki de sağlıklı bir taşıma yapabilmeniz için bir engel değil.
Bu durumda aşağıdaki yönergeleri izlemeniz yeterli olacaktır!
TEK TEK, HESAP BAŞI TAŞIMA
Bu işlem için öncelik ile her seferinde tek tek şifre girme zorunluluğundan kurtulmamız bizim için çok daha faydalı olacaktır.
cPanel sunucumuzda;
ssh-keygen
Komutunu çalıştıralım. Bu komut,
/root/.ssh/id_rsa.pub
Dosyasının içerisine bir anahtar kodu yerleştirecektir.
Komutunu çalıştırın. Bu bizim örneklerimiz için SSH portu 9988, IP adresi 93.187.200.200 olduğunda göre aşağıdaki gibidir;
ssh-copy-id -p9988 root@93.187.200.200
Sizden DirectAdmin sunucunun SSH şifresini isteyecektir. Bu şifreyi girdikten sonra key kopyalanmış olacaktır ve cPanel sunucunuz, bundan sonra DirectAdmin sunucunuza SSH bağlantısı kuracağı zaman sizden şifre istemeden SSH bağlantısı kurabilecektir.
Komutumuz;
for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/yedekler; rsync -avt -e”ssh -p SSH_PORT” /home/yedekler/cpmove-${user}.tar.gz root@DİRECTADMİN_SUNUCU_IP_ADRESİ:/home/yedekler/cpmove-${user}.tar.gz; rm -f /home/yedekler/cpmove-${user}.tar.gz ; }; done
Yani bu, bizim örneğimizde SSH Portumuz 9988, IP adresimiz 93.187.200.200 olduğuna göre aşağıdaki gibidir;
for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/yedekler; rsync -avt -e “ssh -p 9988” /home/yedekler/cpmove-${user}.tar.gz root@93.187.200.200:/home/yedekler/cpmove-${user}.tar.gz; rm -f /home/yedekler/cpmove-${user}.tar.gz ; }; done
Bu komut, bir kullanıcıyı yedekleyip aktardıktan sonra yedek dosyasını cPanel sunucudan silecek bir komuttur.
Disk alanınız yetersiz geldiğinde bu komut yöntemi kullanarak ta aktarım yapabilirsiniz.
Tebrikler! Artık cPanel yönetim paneli kullanan sunucunuzdan DirectAdmin yönetim paneli kullanan diğer bir sunucunuza nasıl taşıma yapacağınızı biliyorsunuz.
Ceph Storage Kurulum, Ubuntu, CentOS7 Mount ve ESXi Datastore olarak kullanım
Merhaba Arkadaşlar,
Bu makalede Ceph Storage için kurulum prosedürlerini ve örnek bir ESXi sistemine datastore olarak nasıl ekleneceğini işleyeceğiz.
Öncelik ile Bu yapı için, en az 4 sunucu gereksinimimiz olacaktır. Bunlar;
Admin / Deploy Node
Monitor Node
Storage Node 1
Storage Node 2..
Gibi olup, Her node ayrı bir sunucuyu belirtmektedir. Storage Node’ları için ihtiyacınız ne ise o şekilde düzenleyebilir, ek sunucular kurabilir yahut çalışan yapıya ihtiyacınız olduğunda rahatlıkla yeni Storage Node’u ekleyebilirsiniz.
Anlatımlarda 4 sunucunun da halihazırda kurulu ve SSH’ın aktif olduğunu varsayarak ilerleyeceğim.
Ön Ayarlar
Herşeyden önce, OS diskiniz ve Ceph Storage üzerinde kullanıma sunmayı planladığınız diskin ayrı olması gerekdiğini belirtmek isterim. OS diskindeki alan kullanımda olmayacaktır. Kullanıma sunmayı planladığınız Storage diskinde ise hiçbir veri olmamalıdır.
İlk olarak Admin / Deploy Node’unun kurulumunu gerçekleştiriyoruz.
Ben kurulumlarda Ubuntu 16.04.4 kullandım ancak ihtiyacınıza göre OpenSUSE yahut RHEL/CentOS ta kullanabilirsiniz. Anlatım Ubuntu üzerinden olacaktır,
echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
Ardından repomuzu update ederek ceph-deploy kurulumu gerçekleştiriyoruz.
sudoaptupdatesudoaptinstallceph-deploy
Bu işlemler ile Admin / Deploy nodunun ilk kurulumunu tamamlamış olduk.
NOT: Secure Linux (Selinux) aktif ise mutlaka devredışı bırakmalısınız. (Ubuntu üzerinde system utils kurmadı iseniz otomatik disable gelir.)
NOT: Seknronizasyon sorunu yaşanmaması için Tüm node’lara ntp server kurulumunu ihmal etmemeniz gerekiyor.
aptinstallntp
/etc/init.d/ntp start
Bu aşamada öncelik ile, Admin / Deploy Node’unun sunuculara hostname ile erişebilmesi lazım.
Ben node’lara,
Admin Node – ceph
Monitor Node – monitor
Storage Node 1 – node1
Storage Node 2 – node2
Şeklinde Hostname tanımladım.
Admin / Deploy nodu üzerinde /etc/hosts içerisine girerek IP – Hostname şeklinde giriyoruz;
Ve İlgili kullanıcıların sudo yetkisi olduğuna emin oluyoruz. Sudo yetkisi kazandırmak için;
echo "cephusr ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephusr
sudo chmod 0440 /etc/sudoers.d/cephusr
İşlem ardından Şifresiz SSH erişimini bu kullanıcılar için aktif etmemiz gerekecektir. ceph-deploy komutu şifre girmez, bu yüzden ssh key generate etmemiz gerekiyor.
Şifreleri soracaktır, şifrelerini girmenizin ardından artık Admin nodu, tüm node lara ssh üzerinden şifre gereksinimi olmadan erişim sağlayabilecektir.
Bu işlemin ardından ceph-deploy’un SSH bağlantısında cephusr kullanıcısını çalıştırabilmesi için, Admin / Deploy Node üzerinde config dosyası oluşturuyoruz;
Host monitor
Hostname monitor
User cephusr
Host node1
Hostname node1
User cephusr
Host node2
Hostname node2
User cephusr
Böylece düz SSH ile bağlanmak istediğinde otomatik root a yönlendirilmeyecek, cephusr kullanıcısına yönlendirilecektir.
Bu işlemler ile ön hazırlıklarımızı tamamlamış olduk. Artık konfigürasyona başlayabiliriz.
Storage Cluster yapısının oluşturulması
Admin nodu üzerinde, ceph-deploy komutunun otomatik oluşturduğu konfigürasyon dosyaları ve keylerin tutulması için bir klasör oluşturuyoruz.
mkdirmy-clustercdmy-cluster
NOT: ceph-deploy komutu, çıktıyı bulunduğu klasöre aktaracağı için kullanırken daima my-cluster klasöründe yahut siz cluster adını ne şekilde belirledi iseniz, o klasörde olmalısınız.
NOT: Başka bir kullanıcı ile giriş yapmış iken sudo kullanmamalısınız.
Artık Cluster oluşturma işlemine başlayabiliriz.
Test için ufak bir journal oluşturarak devam ediyoruz.
/my-cluster/ceph.conf içerisinde, en alta;
[osd]
osd_journal_size = 2000
Şeklinde ekliyoruz.
Deploy işleminden sonra Journal oluşmuş olmalı. Eğer herhangi bir hata alıyor iseniz conf dosyasında yahut kurulumda yanlışlık gerçekleştirmiş olmalısınız, tekrar kontrol etmeniz gerekmektedir.
Şimdi deploy işlemini my-cluster klasörü içerisinde iken gerçekleştirerek cluster’i oluşturalım;
ceph-deploynew monitor node1 node2
Ben şahsen aşağıdaki hatayı aldım;
bash: python: command not found
[ceph_deploy][ERROR ] RuntimeError: connecting to host: monitor resulted in errors: IOError cannot send (already closed?)
Bunun sebebi de ceph-deploy’un phyton ile çalışması ve sunucularda phyton bulunmamasıdır.
Tüm sunuculara aşağıdaki komut ile phyton kurulumu gerçekleştiriyoruz;
sudo apt install python-minimal
Bu işlemin ardından ceph-deploy new nodex nodex nodex komutunu tekrar uyguluyoruz. Sorunsuzca tamamlanmış olmalı.
Ardından node’lar üzerine kurulumu sağlıyoruz;
ceph-deployinstallnode1node2node3
İşlem tamamlandığında Ceph, her node’a kurulmuş olacaktır.
Ardından monitör sistemi için ön hazırlık yapıyoruz,
ceph-deploymoncreate-initial
Bu komut keyleri toplayacaktır ve my-cluster klasörünüzde;
ceph.client.admin.keyring
ceph.bootstrap-mgr.keyring
ceph.bootstrap-osd.keyring
ceph.bootstrap-mds.keyring
ceph.bootstrap-rgw.keyring
ceph.bootstrap-rbd.keyring
Dosyaları oluşmuş olacaktır.
Bu aşamada, Konfigürasyon dosyaları ve admin key’i node lar arası haberleşme için Deploy node’undan diğer nodlarınıza konfigürasyonları ile aktarmanız gerekiyor.
ceph-deployadmin monitor node1 node2
Ardından Node’larınızdaki diski OSD olarak eklemelisiniz.
Ekleme komutu;
ceph-deploy osd create –data {device} {ceph-node}
Formatındadır. Buradaki Device, Node larınız üzerindeki OS diskiniz değil, Storage yapısına sağlayacağınız 2. diskleriniz olacaktır. Komut benim için;
NOT: Güvenlik için birden fazla monitör nodu eklemeniz durumunda bu node lar birbirleri ile senkronize olarak quorum oluşturacaklardır.
Quorum durumunu;
cephquorum_status--formatjson-pretty
Komutu ile inceleyebilirsiniz.
NOT: Güvenlik ve Yedeklilik için birden fazla monitör eklemeniz ŞİDDETLE tavsiye edilmektedir. Aksi halde bir monitör fail verdiğinde, monitör sunucusunda herhangi bir sorun oluşur ise Ceph Storage sisteminiz susacak, çalışmayı durduracaktır. En az 2. bir monitör nodu eklemeniz, hasarlı sunucuyu onarana kadar sistemin durmaması için önemlidir. Anlatımı sadeleştirmek ve minimal tutmak için tek monitör kullanılmıştır.
NOT: Monitor eklemeye çalışır iken;
accepter.accepter.bind unable to bind to 6789: (98) Address already in use
Ya da
[ceph_deploy][ERROR ] GenericError: Failed to add monitor to host: monitor
Şeklinde hata alır iseniz Monitor node üzerinde
cd /var/lib/ceph/mon
rm -rf *
Komutunu uygulamanız, Admin node’u üzerinde de
rm -rf /var/run/ceph/ceph-mon.monitor.asok
Komutunu uygulayarak lock’u silmeniz gerekmektedir. Bu hatalar, bir yerde hatalı konfigürasyon olduğu için monitör ekleyemediğini belirtir. Ardından tekrar;
Komutu ile monitörünüzü/monitörlerinizi tekrar eklemeyi deneyerek başarılı bir şekilde ekleyebilirsiniz.
CephFS kurulumu
ODS lerimizi yarattığımız, monitörümüzü eklediğimize göre artık Linux/Unix sistemlerine mount edilebilen CephFS sistemini oluşturabiliriz.
Ben Metadata nodu olarak monitör nodumu kullandım. Ancak dilerseniz ek bir sunucuyu, örneğin metadata nodunu sisteme ekleyerek görevi ona da atayabilirsiniz.
Anlatım sadeliği ve monitöre çok yük düşmediği için ben monitör nodunu tercih ettim.
Bu admin.secret dosyasını açarak içindeki Key kodunu alıyoruz.
Ardından komutumuz aşağıdaki gibidir;
mount -t ceph NODE:PORT,NODE:PORT,NODE:PORT:/ /MOUNT_EDİLECEK_KLASÖR/ -o name=admin,secret=ADMİN_SECRET_KEY
Ubuntu üzerinde Secret File yerine, direkt Secret Code yani admin.secret dosyasının içeriğindeki kodu ADMİN_SECRET_KEY alanına gireceğiz. Benim oluşturduğum yapıda bu;
mount -t ceph monitor:6789,node1:6789,node2:6789:/ /mnt/ -o name=admin,secret=AQDfUjxbIshaMBAArKNSraYVhLc+tlqbtS9M1w==
Şeklindedir ve bu komutları uygulanmıştır.
Tebrikler, Artık Ceph Storage’iniz Ubuntu sunucunuz tarafından kullanılmaktadır.
Ceph Mount Edildi
Ceph Mount Edildi
Her reboot işleminde otomatik mount olması için /etc/fstab içerisine;
Şeklindedir. Ardından sunucuyu reboot edip mount olduğunu test edebilirsiniz.
ESXi Üzerine Datastore Olarak Mount Etme
Bu işlem standart bir Linux kurulumuna mount etmekten çok daha zahmetlidir. Çünkü Ceph Storage sistemi tek başına ESXi’nin gözlemleyebileceği bir yapıda değildir.
Bunun için öncelik ile bir iSCSI Gateway sunucusu ya da NFS Gateway sunucusu kurulmalı ve konfigüre edilmeli, CEPH Storage bu sunucu üzerinde ESXi’nin okuyabileceği şekilde ESXi ye mount edilmelidir. Kabaca Ceph için bir aracı, bir Gateway sunucusu kurmamız gerekiyor.
Bu işlem için de NFS Gateway olarak Ubuntu 16.04.4 kullanacağım. iCSCI için Ubuntu, PetaSAN, OpenSUSE, CentOS/RHEL gibi alternatiflerimiz mevcut ancak iCSCI üzerindeki araştırmalarımda yeterli verim alamadığım için es geçiyorum.
NFS Gateway
Bu işlem için Admin/Deploy Node, Monitor Node, Node1 ve Node2 dışında 5. bir sunucunun default olarak hazır kurulu olduğunu varsayıyorum. Anlatımımda Ubuntu’dan yola çıkacağım.
Öncelik ile, “Ubuntu 16.04 için” başlığındaki tüm adımları gerçekleştirerek Ceph Storage yapınızı, Ubuntu sunucunuza mount ettiğinizi varsayıyoruz.
Eğer henüz mount etmedi iseniz, buraya tıklayarak makalede ilgili bölüme ulaşabilirsiniz.
Tebrikler, Artık CephFS yapınızı NFS üzerinden networke açtınız!
ESXi Sistemine NFS Disk Ekleme
Ben kurulum ve testlerimde VMWare 6.7 kullandım. Anlatımı da bunun için gerçekleştireceğim.
İşlemler için, ESXi Web arayüzünüze giriş yapınız.
Storage
> New Datastore
Şeklinde ilerleyiniz.
Mount NFS Datastore
İsim = Datastore adı
NFS Server = Sunucu IP si
NFS Share = Veri yolu
NFS Version = NFS 3
Datastore’u eklemek
Tebrikler! Artık Ceph Storage sisteminizi sorunsuz bir şekilde ESXi Sisteminize Mount etmiş bulunuyorsunuz.
Eklenmiş Datastore
Aslında bu bize yeterli olsa dahi NFS Gateway sunucumuzda oluşacak herhangi bir kesinti, VM’lerin de uçması anlamına gelmektedir. Bu yüzden makalenin ilerleyen kısımlarında çok daha güvenli ve yedekli bir yapı olan iCSCI formatını inceleyeceğiz.
Önemli Bilgiler
Herhangi bir aşamada herhangi bir node’umuzun sorunlu olduğundan şüphelenecek olur isek sağlık durumunu;
ssh NODE sudocephhealth Formatında Yani;
ssh monitor sudo ceph health
sshnode1sudocephhealth
ssh node2 sudo ceph health
Şeklinde öğrenebiliriz. Daha detaylı bir analiz için;
ssh NODE sudoceph-s
Komutu ile analiz sağlayabiliriz.
Herhangi bir aşamada geri dönüşü olmayan bir hata yaptığınızı anlarsanız, tüm ceph paketlerini temizleyerek en baştan başlayabilirsiniz.
MySQL Üzerinde yavaş çalışan sorguları tespit edebilmek için bu sorguların bir listesini çıkarabilirsiniz.
İşlemi uygulamak için;
MySQL’e giriş yapın.
Sırası ile aşağıdaki komutları uygulayın;
set @@global.log_queries_not_using_indexes = 1;
set @@global.slow_query_log = 1;
set @@global.slow_query_log_file = /var/log/mysql-slow.log;
set @@global.long_query_time = 0.5;
Ardından bir süre sonra;
/var/log/mysql-slow.log
Dosyasını kontrol ederek yarım saniyeyi aşan sorguları tespit edebilir, bu bağlamda siteniz ve sorgularınız üzerinde optimizasyon gerçekleştirebilirsiniz.
Bir süre sonra bu eklemeyi tekrar normal hale getirmenizi öneririm, aksi takdirde unutulması halinde uzun dönemde gereksiz disk alanı kullanımına sebep olabilir.
Eski haline almak için ise;
MySQL’e giriş yapın.
Sırası ile aşağıdaki komutları uygulayın;
set @@global.log_queries_not_using_indexes = default;
set @@global.slow_query_log = default;
set @@global.slow_query_log_file = default;
set @@global.long_query_time = default;