Category: Linux

  • cPanel Zor Şifre Prosedürünü Aktif Etme

    Merhabalar,

    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.

    İyi çalışmalar.

  • Linux Plesk üzerinde tüm domainler için Logrotate tek seferde ayarlama

    Selamlar,

    plesk bin domain -l| while read dom_name; do /usr/local/psa/bin/domain -u $dom_name -log-bytime weekly; done

    Bu komutu kullanarak tüm domainler için logrotate aktif ederek haftalık olarak ayarlayabilirsiniz.

    İyi çalışmalar dilerim

  • DirectAdmin mssql_connect (FreeTDS) Kurulumu

    Selamlar arkadaşlar,

    DirectAdmin’in derlediği PHP, default hali ile mssql veritabanlarına bağlanmamaktadır.

    Bunun için freetds kurulmalı.

    http://www.freetds.org/

    Siteden Stable Release’in URL sini alıyoruz.

    ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz

    Sunucu üzerinde,

    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

    Komutlarını kullanıyoruz.

    İşlem bu kadar!

    phpinfo üzerinde yahut SSH üzerinde;

    php -m|grep mssql

    Komutu ile kurulumu teyid edebilirsiniz.

    İyi çalışmalar dilerim.

  • Installatron Warning: json_encode(): Invalid UTF-8 sequence in argument hatası çözümü

    Merhabalar,

    Installatron, dil olarak Türkçe seçili iken kurulabilir app lara tıklandığında hiçbir tepki göstermiyor ve,

    /var/installatron/logs/error_log dosyasında andığınız hata;

    2018-10-17 23:28:27.45195700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
    #0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
    #1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
    #2 /usr/local/installatron/lib/gui/browser.php(1184): i_lib::json_encode()
    #3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
    #4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
    #5 /usr/local/installatron/lib/boot.php(29958): itron::init()
    #6 {main}
    2018-10-17 23:28:27.45223700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
    #0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
    #1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
    #2 /usr/local/installatron/lib/gui/browser.php(1205): i_lib::json_encode()
    #3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
    #4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
    #5 /usr/local/installatron/lib/boot.php(29958): itron::init()
    #6 {main}
    2018-10-17 23:28:27.45246700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
    #0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
    #1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
    #2 /usr/local/installatron/lib/gui/browser.php(1440): i_lib::json_encode()
    #3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
    #4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
    #5 /usr/local/installatron/lib/boot.php(29958): itron::init()
    #6 {main}
    2018-10-17 23:28:27.45262300 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
    #0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
    #1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
    #2 /usr/local/installatron/lib/gui/browser.php(1459): i_lib::json_encode()
    #3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
    #4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
    #5 /usr/local/installatron/lib/boot.php(29958): itron::init()
    #6 {main}

    Şeklinde bir hata ise PHP sürümü, Installatronun güncellenmesinin ardından yetersiz kalıyor demektir.

    Çözüm için aşağıdaki kodları sırası ile çalıştırmak yeterlidir;

    mkdir -p /usr/local/installatron
    cd /usr/local/installatron
    curl -O http://php.net/distributions/php-5.6.33.tar.gz
    tar xzf php-5.6.33.tar.gz
    cd php-5.6.33
    ./configure –prefix=/usr/local/installatron/php –disable-libxml –disable-dom –disable-simplexml –disable-xml –disable-xmlreader –disable-xmlwriter –enable-posix –enable-mbstring –enable-ftp –enable-sockets –without-pear –without-iconv –with-zlib –with-gd –with-jpeg-dir –with-png-dir –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-gettext
    make
    make install
    cd ..
    rm -fr php-5.6.33 php-5.6.33.tar.gz /usr/local/installatron/bin

    Ardından Installaton’u tamir etmeliyiz.

    rm -fr /usr/local/installatron/lib /usr/local/installatron/etc/php.ini
    curl -O https://data.installatron.com/installatron-plugin.sh
    chmod +x installatron-plugin.sh
    ./installatron-plugin.sh -f –quick

    Problem giderilmiş olacaktır.

    İyi çalışmalar dilerim.

  • CloudLinux LVE Manager sürekli dönüyor, hata veriyor ise

    Merhabalar,

    DirectAdmin de LVE Manager’a girmeye çalıştığınızda sürekli girmeye çalışıyor gibi dönüyor ancak aşağıdaki hataları vererek loop’a giriyor ise;

    Platform error

    It seems your session expired. Please log in to the platform. You will be redirected to login page.

    Ya da

    Error

    Parameter “key” required

    LVE Manager’in safe mode açık iken sağlıklı çalışamamasından ötürü sorun yaşanmakta olması olasıdır.

    Bu durumda;

    /usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Dosyasını açarak içerisine;

    safe_mode = Off

    Yerleştirmek ve web servisini restart etmek yüksek ihtimal problemi giderecektir.

    NOT: Ayrıca “/usr/share/l.v.e-manager/version” dosyasının sahiplik değerlerinin diradmin.diradmin olduğunu da kontrol etmelisiniz.

    İyi çalışmalar dilerim.

  • Düşük PHP de LVE Manager Çalıştırmak – CloudLinux

    Selamlar,

    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;

    /opt/alt/php56/usr/bin/php

    Şeklindedir. Json’u açabilmek için de;

    /opt/alt/php56/link/conf/default.ini

    Dosyasını açıp json önündeki ; ibaresini kaldırmamız gerekiyor.

    Ardından;

    LVE MANAGER İÇİN

    2 dosya düzenlenmeli, bu dosyalar;

    /usr/local/directadmin/plugins/lvemanager_spa/admin/index.html

    ve

    /usr/local/directadmin/plugins/lvemanager_spa/admin/index.raw

    Dosyaların en başında aşağıdaki satır mevcut;

    #!/usr/local/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Sunucunun native PHP si düşük olduğu için biz PHP ibaresini değiştireceğiz.

    PHP 5.6 için

    #!/usr/local/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Satırlarının başlarındaki PHP yolunu

    #!/opt/alt/php56/usr/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Olarak düzenlemeliyiz.

    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.

    PHP SELECTOR İÇİN

    2 dosya düzenlenmeli, bu dosyalar;

    /usr/local/directadmin/plugins/phpselector/user/index.html

    ve

    /usr/local/directadmin/plugins/phpselector/user/index.raw

    Dosyaların en başında aşağıdaki satır mevcut;

    #!/usr/local/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Satırlarının başındaki PHP yolunu belirlediğimiz PHP olarak düzenlemeliyiz.

    #!/opt/alt/php56/usr/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    İşlem bu kadardır, LVE Manager ve PHP Selector çalışacaktır.

    İyi Çalışmalar Dilerim

  • cPanel sunucudan DirectAdmin sunucuya taşıma gerçekleştirmek

    Merhabalar,

    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.

    Komutlar;

    rsync -ravz -e "ssh -p SSH_PORT" /home/yedekler/ root@DirectAdmin Sunucu IP Adresi:/home/admin/admin_backups

    Örneğin DirectAdmin sunucumuzun IP adresi 93.187.200.200 SSH portu da 9988 olsun, Komutumuz;

    rsync -ravz -e "ssh -p 9988" /home/yedekler/ root@93.187.200.200:/home/admin/admin/backups

    Şeklinde olacaktır.

    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.

    Ardından,

    ssh-copy-id -pSSH_PORTU root@DİRECTADMİN_SUNUCU_IP_ADRESİ

    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.

    İyi çalışmalar dilerim

  • CEPH Storage Kurulumu / Linux – ESXi ye Disk Eklenmesi

    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,

    Öncelik ile Ceph Release key’i ekliyoruz;

    wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -

    Ardından, repomuza Ceph paketlerini ekliyoruz.

    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.

    sudo apt update
    sudo apt install ceph-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.

    apt install ntp
    /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;

    93.187.202.212 monitor ceph.monitor
    93.187.202.235 node1 ceph.node1
    93.187.202.231 node2 ceph.node2

    Erişimi ping node1 diyerek test edebilirsiniz.

    Bu işlemin ardından Monitör ve Storage nodeları üzerinde Admin/Deploy nodunun erişeceği kullanıcıları oluşturuyoruz ve şifrelerini belirliyoruz.

    useradd -d /home/cephusr -m cephusr
    passwd cephusr

    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.

    Admin nodunda ssh-keygen komutunu çalıştırın.

    (passphrase boş bırakılacak)

    ssh-keygen
    
    Generating public/private key pair.
    Enter file in which to save the key (/ceph-admin/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /ceph-admin/.ssh/id_rsa.
    Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.

    Ardından tüm Node’lara keyi yüklemeliyiz.

    ssh-copy-id cephusr@node1
    ssh-copy-id cephusr@node2
    ssh-copy-id cephusr@monitor

    Şifreleri soracaktır, şifrelerini girmenizin ardından artık Admin nodu, tüm node lara ssh üzerinden şifre gereksinimi olmadan erişim sağlayabilecektir.

    Kontrol için;

    ssh cephusr@monitor

    Komutunu kullanabilir, erişebildiğini doğrulayabilirsiniz.

    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;

    nano /etc/.ssh/config

    Ve içerisini aşağıdaki şekilde düzenliyoruz;

    Host node1
       Hostname node1
       User {username}
    Host node2
       Hostname node2
       User {username}
    Host node3
       Hostname node3
       User {username}

    Bu benim yapılandırmam için aşağıdaki şekildedir;

    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.

    mkdir my-cluster
    cd my-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-deploy new 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-deploy install node1 node2 node3

    İşlem tamamlandığında Ceph, her node’a kurulmuş olacaktır.

    Ardından monitör sistemi için ön hazırlık yapıyoruz,

    ceph-deploy mon create-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-deploy admin 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;

    ceph-deploy osd create –-data /dev/sdb monitor
    ceph-deploy osd create –-data /dev/sdb node1
    ceph-deploy osd create –-data /dev/sdb node2

    Şeklindedir.

    Eğer bu komut ile OSD leri oluşturamadı iseniz, Manuel olarak zap’lamanız (Formatlamanız) ve hazırlamanız gerekiyor. Bunun için de komut;

    ceph-deploy disk zap {osd-server-name}:{disk-name} Formatında yani;
    ceph-deploy disk zap monitor:sdb

    Gibi. Zap işlemi ardından OSD mizi hazırlıyoruz;

    ceph-deploy osd prepare {node-name}:{data-disk} Formatında yani;
    ceph-deploy osd prepare monitor:sdb
    ceph-deploy osd prepare node1:sdb
    ceph-deploy osd prepare node2:sdb

    Şeklinde.

    Bu işlem sadece OSD leri hazırlamakta olup, aktif etmemektedir. Aktif etmek için;

    ceph-deploy osd activate {node-name}:{data-disk-partition} Formatında Yani;
    ceph-deploy osd activate monitor:/dev/sdb1
    ceph-deploy osd activate node1:/dev/sdb1
    ceph-deploy osd activate node2:/dev/sdb1

    Komutları ile Ceph Storage sistemimizin Storage görevini görecek olan OSD lerimizi yayına alıyoruz.

    Bu aşamada artık Monitör Node’umuza görevini belirtebilir, Sisteme Monitör olarak atayabiliriz.

    ceph-deploy mon add MONITOR-NODE Formatında yani;
    ceph-deploy mon add monitor
    

    Bu, Birden fazla monitör nodu eklemek için;

    ceph-deploy mon add MONITOR-NODE1 MONITOR-NODE2 Formatında yani;
    ceph-deploy mon add monitor1 monitor2
    

    Şeklinde olacaktır.

    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;

    ceph quorum_status --format json-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;

    ceph-deploy mon add MONITOR-NODE Formatında yani;
    ceph-deploy mon add monitor
    

    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.

    Komutumuz;

    ceph-deploy mds create Metadata Node Formatında yani benim için;
    ceph-deploy mds create monitor

    Şeklindedir. İşlem ardından İlgili Node üzerinde,

    ceph mds stat

    Komutunu kullanarak sistemin up olduğunu, standby da beklediğini görebiliyor olmalıyız.

    mds
    Metadata node’unu kontrol

    Ardından Monitör nodumuzda Cephfs için gerekli olan datapool ve metadatayı yaratmalıyız.

    ceph osd pool create cephfs_data 128
    ceph osd pool create  cephfs_metadata 128

    İşlem ardından bu pool’u kullanan mycephsfs isimli bir dosya sistemi yaratmak için aşağıdaki komutu kullanıyoruz;

    ceph fs new mycephfs cephfs_metadata cephfs_data

    Aşağıdaki komut ile oluştuğunu gözlemleyebiliriz;

    ceph fs ls

    Bu işlemler ile Ceph Storage sistemimiz üzerinde, mycephfs adında bir dosya sistemi yaratmış olduk. Artık bu dosya sistemini mount edebiliriz.

    Linux Üzerine Mount Etme

    Bu işlem çok basittir.

    Öncelik ile, Sunucuya ceph-common paketi kurulmalıdır.

    CentOS 7 için;

    CentOS 7 sisteminde ve repolarında ceph yerleşik olarak bulunmamaktadır. Ancak işlem için Epel Reposunu kullanabiliyoruz.

    Aşağıdaki komutlar ile Epel reposu sunucuya tanımlanır,

    yum -y install epel-release
    rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm

    Ardından aşağıdaki komutları kullanarak ceph-common paketini kurabilirsiniz.

    yum -y update
    yum -y install ceph-common

    Bu işlemler ardından öncelik ile /etc/hosts dosyasını Admin / Deploy Node’unda olduğu gibi hostname leri çözümleyecek şekilde düzenlemelisiniz.

    Bu benim için daha önce de belirtmiş olduğum gibi;

    93.187.202.212 monitor ceph.monitor
    93.187.202.235 node1 ceph.node1
    93.187.202.231 node2 ceph.node2

    Şeklindedir.

    Ardından Admin Node’u üzerinde, Admin Secret Key tespit edilir.

    cat /my-cluster/ceph.client.admin.keyring | grep "key =" | awk {'print $3'} > admin.secret

    Bu komut bize admin.secret dosyasını oluşturacaktır.

    Bu admin.secret dosyasını mount edeceğimiz sunucuya aktarıyoruz.

    Ardından komutumuz aşağıdaki gibidir;

    mount -t ceph MONITOR:PORT,NODE:PORT,NODE:PORT,NODE:PORT:/ /KLASÖR/ -o name=admin,secretfile=/VERİYOLU/admin.secret
    

    Şeklindedir. Bu benim oluşturduğum yapı için;

    mount -t ceph monitor:6789,node1:6789,node2:6789:/ /mnt/ -o name=admin,secretfile=/root/admin.secret

    Komutları uygulanacaktır.

    Tebrikler, CentOS 7 artık Ceph Storage’inizi kullanıyor.

    Centos
    Ceph Mount Edildi

    Her reboot işleminde otomatik mount olması için /etc/fstab içerisine;

    NODE:PORT,NODE:PORT,NODE:PORT:/ /MOUNT_EDİLECEK_KLASÖR ceph name=admin,secretfile=/VERİYOLU/admin.secret,_netdev,noatime 0 0

    Şeklinde eklenir. Yani bu benim oluşturduğum yapı için;

    monitor:6789,node1:6789,node2:6789:/ /mnt ceph name=admin,secretfile=/root/admin.secret,_netdev,noatime 0 0

    Şeklindedir. Ardından sunucuyu reboot edip mount olduğunu test edebilirsiniz.

    Ubuntu 16.04 için;

    Aşağıdaki komutları kullanarak ceph-common paketini kurabilirsiniz.

    apt install ceph-common ceph-fs-common -y

    Bu işlemler ardından öncelik ile /etc/hosts dosyasını Admin / Deploy Node’unda olduğu gibi hostname leri çözümleyecek şekilde düzenlemelisiniz.

    Bu benim için daha önce de belirtmiş olduğumdan biraz değişik çünkü bu sefer admin / deploy nodunu da giriyoruz.

    93.187.202.207 ceph ceph.admin
    93.187.202.212 monitor ceph.monitor
    93.187.202.235 node1 ceph.node1
    93.187.202.231 node2 ceph.node2

    Şeklindedir.

    Ardından Admin Node’u üzerinde, Admin Key ve Admin Secret tespit edilir.

    cat /my-cluster/ceph.client.admin.keyring | grep "key =" | awk {'print $3'} > admin.secret

    Bu bize admin.secret dosyasını oluşturacaktır.

    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.

    Ubuntu
    Ceph Mount Edildi

    Ubuntu
    Ceph Mount Edildi

    Her reboot işleminde otomatik mount olması için /etc/fstab içerisine;

    NODE:PORT,NODE:PORT,NODE:PORT:/ /MOUNT_EDİLECEK_KLASÖR ceph name=admin,secret=ADMIN_SECRET_KEY,_netdev,noatime 0 0

    Şeklinde eklenir. Yani bu benim oluşturduğum yapı için;

    monitor:6789,node1:6789,node2:6789:/ /mnt ceph name=admin,secret=AQDfUjxbIshaMBAArKNSraYVhLc+tlqbtS9M1w==,_netdev,noatime 0 0

    Ş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.

    Öncelik ile sunucumuza NFS Server kuralım;

    apt-get -y install portmap nfs-kernel-server

    Kurulum tamamlandığında /etc/exports dosyasını düzenleyeceğiz.

    Burada, ESXi Sunucumuzun IP Adresini belirterek NFS ye açacağımız klasörü, benim oluşturduğum yapı için /mnt klasörünü belirteceğiz.

    nano /etc/exports

    Dosya içerisine, en altına;

    /NETWORKE_AÇILACAK_KLASÖR_VERİYOLU  000.000.000.000(rw,async,no_subtree_check) Formatında Yani;
    
    /mnt 93.187.202.230(rw,async,no_subtree_check)
    
    

    Formatında ekleyeceğiz.

    NFS
    Mount edilmiş ceph’i NFS ye açmak

    Ardından,

    exportfs -ra

    Komutunu kullanıp NFS Servisimizi restart ediyoruz.

    /etc/init.d/nfs-kernel-server restart

    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

    Ceph Datastore'u NFS olarak eklemek
    Datastore’u eklemek

    Tebrikler! Artık Ceph Storage sisteminizi sorunsuz bir şekilde ESXi Sisteminize Mount etmiş bulunuyorsunuz.

    Ceph Storage'nin Datastore olarak eklenmesi
    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 sudo ceph health Formatında Yani;
    ssh monitor sudo ceph health
    ssh node1 sudo ceph health
    ssh node2 sudo ceph health

    Şeklinde öğrenebiliriz. Daha detaylı bir analiz için;

    ssh NODE sudo ceph -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.

    Bunun için Komutumuz;

    ceph-deploy purge {ceph-node} [{ceph-node}]
    ceph-deploy purgedata {ceph-node} [{ceph-node}]
    ceph-deploy forgetkeys
    rm ceph.*

    Formatındadır. Ve Admin / Deploy nodunda çalıştırılmalıdır.

    Yani bu benim oluşturduğum yapı için;

    ceph-deploy purge monitor node1 node2
    ceph-deploy purgedata monitor node1 node2
    ceph-deploy forgetkeys
    rm ceph.*

    Formatındadır.

    Kaynakça;

    Ön Hazırlık

    Cluster Deploy

    CephFS

    Ubuntu NFS Gateway Kurulumu

  • MySQL’de Yavaş Çalışan Sorguların Kontrolü

    MySQL’de Yavaş Çalışan Sorguların Kontrolü

    Selamlar,

    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;

    İyi çalışmalar dilerim.

  • Unknown collation: ‘utf8mb4_unicode_520_ci’ Hatasının Çözümü

    Unknown collation: ‘utf8mb4_unicode_520_ci’ Hatasının Çözümü

    Merhabalar,

    Farklı bir sunucudan yedekleriğiniz MySQL veritabanını, sunucunuza yükler iken;

    Unknown collation: ‘utf8mb4_unicode_520_ci’

    Hatasını alıyor iseniz sürüm ve collation farklarından ötürü yaşandığı ve çözümünün basit olduğunu bilmelisiniz.

    Çözüm için, Veritabanını .sql olarak yedekleyin.

    Notepad ++ gibi çoğul olarak bul – değiştir işlemi gerçekleştiren bir program ile veritabanınızı açın.

    utf8mb4_unicode_ci değerlerini utf8_general_ci olarak değiştirin.

    utf8mb4_unicode_520_ci değerlerini utf8_general_ci olarak değiştirin.

    utf8mb4 değerlerini utf8 olarak değiştirin.

    İşlem bu kadardır.

    İyi çalışmalar dilerim.