Evde Debian 12 ile kendin yap NAS (Network-attached storage) denemeleri.

Sercan

--
Katılım
17 Mart 2019
Mesajlar
4,953
Bu konu öncesinde OpenMediaVault ile çok kısa bir denemem oldu. Merak edenler aşağıdaki linkten inceleyebilir.

Aslında çok uzun zamandır iş için 3-2-1 yedekleme politikasını takip ediyorum ve bununla ilgili bir sorun yaşamıyorum. Fakat server fiyat ve hizmet kaliteleri beni başka arayışlara yönlendiriyor. Yurt dışından alınan hizmetler çok daha iyi ve ekonomik olsa da verilerimi yerel depolamayı tercih ediyorum.

Diğer yandan şahsi verilerimi de yedeklemek de önemli. Birçok defa kendi hatalarım yüzünden veri kaybettim. En son yanlışlıkla işletim sistemini bozduktan sonra kesinlikle bir NAS ihtiyacı hissetim. Bunun için kendin yap bir çözüme yöneleceğim ve Debian 12 minimal kurulumu NAS olarak kullanacağım. Hatta bunu bir sonraki adımda evdeki router yerine kullanmayı planlıyorum.
 
Donanım olarak eksi bir ASUS P5G41T-M LX ankart, Intel Pentium E5300 2 çekirdek işlemci, 2GB DDR3 RAM ve 4 x 1 TB SSD SATA disk'im var.

Bu cihaza Debian 12'yi minimal olacak şekilde net install iso dosyasından kurdum. Minimal kurarken seçmeyi unuttuğum için kurulum sonrasında ssh bağlantısı kurabilmek için
Kod:
apt install openssh-server
komutu ile ssh server kurulumu yaptım ve artık konsol aracılığı ile haberleşebiliyorum.

Diskleri kontrol ettiğimde sda (işletim sistemini kurulu olduğu birinci disk) ve OpenMediaVault ile yapılandırıdığım (sdb, sdc, sdd) RAID 5 olarak diğer 3 disklerimi sorunsuz görüyorum.

1701748757985.png
 
  • Beğen
Reactions: nt
Öncelikle RAID 5 yapılandırmasını temizleyeceğim ve bu işlemi komut satırından kendim yapacağım. Çünkü daha önce bunu arayüz ile yaptırdım ve gerçekte nasıl yapıldığını/yapılması gerektiğini bilmiyorum.

Adımlar son derece basit. Öncelikle umount ile (eğer mount edilmişse) disklerin bağlantısını kaldırıyoruz.

Kod:
cat /proc/mdstat
ile mevcut durumu görüntülüyoruz.

mdadm kullanıp durduruyor ve siliyoruz.

Kod:
mdadm --stop /dev/md0
Kod:
mdadm --remove /dev/md0

Son olarak superblok temizliği yapıyoruz.

Kod:
mdadm --zero-superblock /dev/sdb /dev/sdc /dev/sdd

diskleri tekrar kontrol ettiğimizde aşağıdaki gibi boşta görmemiz gerekiyor.

1701749723503.png

Şimdi RAID 5 yapılandırmak için ilerleyebiliriz.
 
  • Beğen
Reactions: nt
En başta fdisk ile partition oluşturmak gerekiyor. Her bir disk için
Kod:
fdisk /dev/sdb
komutunu veriyoruz. Daha sonra ben yine
Kod:
lsblk -f
ve
Kod:
mdadm -E /dev/sd[b-d]
komutu ile kontrol ettim ve aşağıdaki gibi hepsinin oluştuğunu gördüm.

1701750401308.png

Şimdi bir RAID cihaz oluşturabiliriz. Bunun için kısaca
Kod:
mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1
komunutunu kullanabiliyor muşuz ama aşağıdaki komut benim gibi acemiler için daha açıklayacı.
Kod:
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Herşey sorunsuz ilerlediğinde
Kod:
mdadm -E /dev/sd[b-d]1
komutu ile Raid level ve Raid Devices adı altında oluşturduğumuz yapıyı görebiliriz.

1701750708715.png

Herşeyin senkronize olduğunu ve çalışmaya başladığını doğrulayabilmek için
Kod:
mdadm --detail /dev/md0
komutunu veriyouz ve Active Devices Working Devices verilerinin uyumluluğunu kontrol ediyoruz.

1701750964666.png
 
İşleme dosya sistemi oluştrarak devam ediyoruz.

Kod:
mkfs.ext4 /dev/md0

Dosya sistemini de oluşturduktan sonra RAID 5 dizesini bir klasöre bağlamamız gerekiyor. Ben bunu mnt/raid5 yolunu tercih ettim.

Kod:
mkdir /mnt/raid5
mount /dev/md0 /mnt/raid5/
ls -l /mnt/raid5/

Şimdi her bilgisayar açıldığında disklerin aynı noktaya bağlanması için fstab dosyamızı düzenleyeceğiz. Bunun için favori editörünüzü tarcih edebilirsiniz. Ben genellikle vi kullanıyorum.

1701751684217.png


Son olarak yapmamız gereken bir şey daha var. RAID 5 konfigürasyonumuzu kaydetmemiz gerekiyor. Aksi halde her defasında MD0 yerine farklı farklı sayılar alacaktır. Bunu sistemi yeniden başlatmadan önce mutlaka yapmak gerekiyor. Bunun için aşağıdaki komutu veriyoruz


Kod:
mdadm --detail --scan --verbose >> /etc/mdadm.conf


1701751985187.png

Bütün bu işlemlerden sonra RAID 5'in sorunsuz çalışması gerekiyor. Bu işlemler için kaynak olarak şurayı kullandım.
 
Bütün bu işlemlerden sonra işletim sistemi çalışmadı. Birşeyleri yanlış yapmış olmalıyım.

20231205_092216.jpg
 
Seni root shell'e düşürmüş. Orada kontrol et durumu. Raid grubunu mount edememiş.

Veya şimdilik /dev/md0 aygıtını /etc/fstab dan çıkar ve manuel olarak mount et. Herşey oturduktan sonra otomatik boot ile mount ettiririsin.
 
Normalde daha da çok uğraşırdım ama işler yoğun olduğu için şöyle ilerledim, neyi bozduğumu bulmak yerine basitçe sıfır kurulum yaptım.

Sıfır kurulumda bir öncekinde oluşturduğum RAID 5'i tanıdı. Bunu aynı şekilde fstab içinda bağladım sorunsuz çalıştı. Galiba bu da bana birşeyleri bozduğumu ya da beceremedimi gösteriyor. :cheeky1:

Neyse daha sonra işi garantiye almak için fstab içinde mount ederken /dev/md0 şeklinde kullanılan cihaz adı yerine RAID 5 yapısına ait UUID'yi kullandım. Yeniden başlattım ve şimdilik herhangi bir sorun görünmüyor.

1701845091590.png


1701844884348.png

1701845348777.png
 
RAID 5 yapısı içerisine nas ve music olmak üzere iki tane klasör oluşturup izinleri ayarladım.
Kod:
mkdir /mnt/raid5/nas
chmod 777 /mnt/raid5/nas

1701885782029.png

Bunları ağda paylaşmak için Samba kurulumu yaptım.

Kod:
apt update
apt install samba

Kurulum sonrasında sambayı yapılandırmak gerekiyor. Öncesinde yapılandırma dosyasının yedeğini aldım. Bu yedek bazı durumlarda dönüp ilk değerlere bakmak için faydalı oluyor.

Kod:
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Yedeği aldıktan sonra smb.conf dosyasını vi ile düzenledim.

Kod:
vi /etc/samba/smb.conf


Benim durumumda ayaları aşağıdaki gibi yapmak yeterli geldi. Bu adımı siz kendinize göre düzenlemelisiniz. XXX.XXX.XXX. şeklinde yazdığım benim iç IP adresimin ilk üç blogu. Bunuda düzenlemeyi unutmayın.

Kod:
[global]
   workgroup = WORKGROUP
   server string = Samba Server
   security = user
   hosts allow = XXX.XXX.XXX. 127.
   ;interfaces = enp2s0 lo
   guest account = sercan
   map to guest = bad user

[public]
   path = /mnt/raid5/nas
   guest ok = yes
   read only = no

[music]
   path = /mnt/raid5/music
   guest ok = yes
   read only = yes

Değişikliklerin geçerli olması için yeniden başlatıyoruz.
Kod:
systemctl restart smb.service
systemctl status smb.service


1701886374588.png
 
Not: Garip bir şekilde benim interface ayarını yapamadığım için geçersiz olarak ayarladım. Birde şu satır bir hataya mı işaret ediyor yoksa bilgilendirme mi anlamadım.

Dec 06 21:12:18 nas smbd[600]: [2023/12/06 21:12:18.630265, 0] ../../source3/smbd/server.c:1741(main)
 
Sonuç olarak ağ üzerinden erişebildiğim iki klasörü oluşturmuş bulunuyorum. Bunlardan biri sadece okuma diğerine okuma-yazma yetkisi vermiş oldum.

1701886799510.png
 
O hata değil. Benim samba server sorunsuz çalışıyor, ama ilk çalışma anında, mod değiştirme durumunda, ve çıkarken log mesajlarını kırmızı olarak yazıyor.
 
Şimdi NAS tarafında oluşturduğum klasörü ana bilgisayara mount ettim. Herşey çalışyor fakat şöyle bir durum var.

Örneğin
Kod:
touch /mnt/raid5/nas/mekatronik.org_{1..10}
komutu ile 10 tane dosya oluşturuyorum. Paylaşımdaki nas klasörüne aşağıdaki gibi erişirsem bütün değişiklikleri ANINDA klasörde görebiliyorum.

smb://XXX.XXX.XXX.XXX/nas/

Fakat mount ettiğim adresten (/home/server/nas) erişirsem değişiklikleri görmek için (F5 ile) klasörü yenilemem gerekiyor.

Bunun çalışma presibi mi böyle yoksa ben bir hata mı yapıyorum?

mount etmek için kullandığım fstab komut satırı şu şekilde:
Kod:
 //XXX.XXX.XXX.XXX/nas /home/sercan/server/nas/ cifs vers=2.0,credentials=/home/sercan/.smbcredentials,iocharset=utf8,gid=0,uid=0,file_mode=0777,dir_mode=0777 0 0

.smbcredentials dosyasının içi ise şu şekilde
Kod:
username=USER
password=PASSWORD
 
hmm gene bir sorun var gibi duruyor :) Ben şimdi samba paylaşılan dizine bir dosya oluşturuyorum, windows explorer da hemen görünüyor. Siliyorum, windows explorer da kayboluyor.
 
Ben doğru ifade edemedim sanırım.

Windows'ta \\IP ADRESİ\nas\
Debian'da smb://IP ADRESİ/nas/
Şeklinde erişirsem değişiklikleri anında görebiliyorum.

Windows'ta "Ağ Sürücüsüne Bağlan" seçeneği ile Bilgisayarım altına eklersem de anında görebiliyorum.


Fakat Debian'da fstab içine aşağıdaki komut ile paylaşılan klasörü home altında bir konuma bağlarsam, bağladığım klasörü açtığımda değişiklikeri anında GÖREMİYORUM.

Kod:
 //IP ADRESİ/nas /home/sercan/server/nas/ cifs vers=2.0,credentials=/home/sercan/.smbcredentials,iocharset=utf8,gid=0,uid=0,file_mode=0777,dir_mode=0777 0 0

Garip bir şekilde Windows sorunsuz çalışıyor. :D
 
Sorunun ne olduğunu bilmiyorum, ama iki Linux arasında dosya paylaşımı için NFS kullanmak daha uygun olur. SAMBA nın amacı, linux ile windows'u konuşturmak.
 
Aynı anda hem Samba hem NFS çalışır mı? Samba'nın şu an tek sorunu Linuxda mount point ile erişirsem değişiklikleri anında göremiyorum.
 
Eğer dizinler farklı ise aynı anda çalışır. Dizin tazelememesi kullandığın file manager'in bug'ı da olabilir. KDE deki dolphin'de nadiren görüyorum öyle bir sorunu.
 
Calisirda birini salt okunur yapmaniz lazim. Servislerin ikisi de yazmaya calisirsa sorun olusturur.
 
Dizin tazelememesi kullandığın file manager'in bug'ı da olabilir. KDE deki dolphin'de nadiren görüyorum öyle bir sorunu.

Bu durumu test etmek için iki tane konsol ve bir Dolphin ekranı açtım.
Soldaki NAS sunucusu ve doğrudan 10 tane dosya oluşturuyorum.
Ortadaki alanda bilgisayarımdaki /home/sercan/server/nas (Mount point) yolunu inotify ile komut satırından takip ediyorum.
Sağdaki alan ise smb://IP/nas şeklinde bağlandığım Dolphin.

Garip bir şekilde inotify uygulaması da komut sarında bu değişiklikleri takip edemiyor. Oysa aynı program NAS sunucusu üzerinde doğrudan klasörü takip edersem sorunsuz gösteriyor.

Yani bu Dolphin hatası gibi durmuyor.

1701895323474.png
 

Forum istatistikleri

Konular
5,844
Mesajlar
99,686
Üyeler
2,481
Son üye
rfdog12

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top