Sade İngilizce'de LXC nedir ve ne işe yaradığını açıklayın [kapalı]


Yanıtlar:


24

"Sade İngilizce" ile teknik olmayan insanlar kastediyorsanız, fark kolayca açıklanamaz. Bu saç çok dikkatli düşünülmeden bölünemeyecek kadar incedir.

"Sade İngilizce" ile teknik insanlarla konuşan ve dolayısıyla teknik konularda en azından geçen bir anlayışa sahip yönetim türlerini kastediyorsanız, şu dökümü gönderirim:


Farklı bir sanallaştırma şeklidir.

VMWare ESXi'ye bakarsanız, tam sanallaştırma adı verilen tam bir hipervizördür. Donanımın üstünde çalışan sanallaştırılmış sistemler arasında çok küçük bir katman vardır. Sanal makinede çalışan işletim sisteminin, hipervizörün kendisinden tamamen bağımsız olduğu ve beklediği tüm donanımla birlikte sunulduğu tam donanım sanallaştırma vardır.

Başka bir adım atın ve VMWare Player, Workstation, ESX (ESXi değil) veya VMWare Server gibi bir şeye bakın ve hipervizör rolünü sağlayan tam bir işletim sisteminiz var. Bununla birlikte, sanal makineler hala bir dizi sanal donanımla sunulmaktadır.

Başka bir yaklaşım, Xen'in oldukça uzun bir süre takip ettiği para-sanallaştırmadır. Bu sanallaştırma biçiminde, konuk işletim sistemi sanallaştırıldığını ve bu ortamda çalışmak üzere değiştirildiğinin farkındadır. Bazen tüm bu ihtiyaçlar özel para-sanallaştırma sürücüleri. Diğer zamanlarda, açık çekirdek değişikliklerine ihtiyaç vardır.

LXC veya Linux Kapsayıcılar, bir başka adımdır. Bu durumda, aynı işletim sisteminin birden çok örneğini çalıştırır . Çekirdek aynı olabilir, ancak her işletim sistemi kapsayıcısı için birden çok kullanıcı alanı çalışıyor. Her kap farklı bir dosya sistemine sahip olabilir veya olmayabilir.

Kapsayıcılar, aynı kullanıcı alanına sahip sistemlerde bulunmayan bir şekilde işlemler arasında güçlü güvenlik ayrımı sağlamanın bir yolunu sunar. Unix benzeri işletim sistemleri uzun bir süredir 'chroot hapishanesine' sahiptir, ancak süreç ayrımı veya hapisteki süreçler tarafından tüketilen kaynakları sınırlama yeteneği sağlamaz. Bu tür süreçleri kaplayarak kaynak kullanımı sınırlandırılabilir, bunlara ayrı IP adresleri atanabilir ve kullanıcı alanından yararlanan güvenlik açıkları sistemin geri kalanında bulunur.

LXC'yi başka bir sanallaştırma türüne karşı nerede kullanırsınız? Buna bağlıdır, ancak LXC , diğer donanımsallaştırma yöntemlerinden daha az sanallaştırma cezası sağlamalıdır. Dolayısıyla, aynı işletim sistemi sürümüne ihtiyaç duyan ve aynı zamanda güncellemeler için yeniden başlatılabilen bir grup işleminiz varsa, LXC tüm bunları güvenli bir şekilde ve kaynak yönetimiyle çalıştırmak için düşük maliyetli bir yol sağlayabilir.


Çok daha etkili bir şekilde ifade edildi.
Nicholi

Aslında, VMWare ESX'i yanlış karakterize ettiğinizden oldukça eminim. Bu çıplak metal üzerinde çalışan tam bir hipervizör; sadece bir Linux konsolu sunuyor. Vikipedi: "Geçerli ESX 4.1 sürümünden önce bir Linux çekirdeği başlatılır, [6] ve VMware'in vmkernel bileşeni de dahil olmak üzere çeşitli özel sanallaştırma bileşenlerini yüklemek için kullanılır. makine ve servis konsolu olarak adlandırılır. " Novell Netware gibi - DOS'u önyükleyici olarak kullanır ve NW çekirdeği çalışma zamanı için çıplak metaldir.
mfinni

@mfinni "Sade ingilizce" talep eden insanlarla konuşurken, bunun gibi ayrımlar daha az önemlidir. Hem ESX / ESXi hem de Player tam sanallaştırmadır, fark hipervizörün oturduğu metale ne kadar yakın olduğudur.
sysadmin1138

5

LXC, çekirdekteki sistemleri / süreçleri izole etmek için kullanılan bir araçtır. Sistem, bir "kapsayıcıya" kilitlenir, böylece kapın dışındaki herhangi bir şeyle etkileşime giremez. Böylece Linux Kapsayıcıları adı.

Birisi bir makinede çalışan hizmetleri izole etmek olacak birçok şey için yararlı olabilir. Bu hizmetlerden biri tehlikeye girerse, ana bilgisayar sisteminin kendisi (kendi LXC'lerinde çalışan diğer hizmetlerle birlikte) etkilenmez. Hatta her kullanıcıya kendi sistemlerine root erişimi sağlamak için aptalca bir araç olarak bile kullanılabilir, hiçbir endişesi birbirleriyle etkileşmez.

Diğer "yaygın" sanallaştırmaların çoğu, donanım aygıtlarını taklit etme ihtiyacı nedeniyle büyük miktarda kaynak kullanımı uygular. LXC'ye, donanım aygıtları için herhangi bir benzetim gerekmez, çünkü her LXC'ye donanıma sınırlı erişim / doğrudan erişim yoktur. Her sistem ana bilgisayarda "çalışır", ancak kapsayıcısının dışındaki hiçbir şeyi etkileyemez. Bu sanallaştırma türüne işletim sistemi düzeyinde sanallaştırma denir (google). Bu aslında bir Linux Container'ı çalıştırmak için çok az / var olmayan ek yük anlamına gelir. Böylece, belirli bir makinede yüzlerce LXC olabilir, ancak "ortak" sanal makine yazılımını kullanarak kaynaklarınız oldukça hızlı tükenir.

Aslında Linux-Vserver'a daha aşinayım ama teori de aynı.


3

Bunu anlamanın en basit yolu, chroot'un ne yaptığını öğrenmektir. chroot, kendi başına tam sistemmiş gibi, unix benzeri bir sistemin klasöründe "oturum açmanıza" izin verir. Başka bir deyişle:

eğer varsa:

 /
   /boot
   /etc
   /home
   ...

vb. varsa, bir_new_kurulum dizini ekleyebilirsiniz:

 /
   /some_new_install
      /boot
      /etc
      /home
      /usr
      ...
   /boot
   /etc
   /home
   /usr
      ...

ve / some_new_install dizinine giriş yapın. Sonra / some_new_install / etc, new / etc'dir ve orijinal / etc gizlidir ve (çoğunlukla) erişilemez. / usr / bin, farklı programlarla orijinalden farklı olabilir. MySQL, / usr / bin / mysql'de aynı program olabilir, ancak / var / lib / mysql'de farklı veriler olabilir.

Dosya sistemi sanallaştırıldı; orijinal dosya sisteminizi böler, kaynaklarını paylaşır, bu kaynakları diğer sanallaştırılmış kaynaklardan yalıtırsınız.

Bu harika. Yepyeni bir sanal unix kopyası çalıştırmak yerine, sadece bir ekstra program çalıştırmak için, sanal bir dosya sistemine atlayabilir ve aynı çekirdekte, aynı kütüphanelerde (sembolik bağlantıları kullandıysanız) çalıştırabilirsiniz. Xen veya VirtualBox gibi bir şey.

Sorun şu ki, bu programlardan biri, mesela, MySQL, çıldırır ve tüm CPU'nuzu kullanmaya ve diskte değiştirmeye başlarsa, yine de makinenin geri kalanını etkileyecektir, çünkü CPU değil sadece dosya sistemi sanallaştırılmıştır. veya temeldeki disk performansı. IP adresleri ve bağlantı noktaları da sanallaştırılmaz, bu nedenle iki program ağda bilgi gönderirse, bunu aynı IP'lerden yapar ve bu da muhtemelen çakışmalara neden olur. Benzer şekilde, mysql'nin iki kopyası bir bağlantı noktasını dinlemeye çalışırsa, bağlantı noktası kullanımda olduğu için ikincisi başarısız olur.

LXC bunu sadece dosya sistemini değil, aynı zamanda ağ ips / portları / arayüzlerini, CPU'yu, bellek kullanımını vb.

LXC tam sanal makineler kadar güvenli değildir, ancak genellikle üstün çözümdür. Sonuçta, işletim sistemleri kaynakları güvenli bir şekilde paylaşmakla ilgilidir. Çoğu zaman, bunu yapmak için birden fazla işletim sistemi çalıştırmak aptalca - daha iyi izolasyona sahip daha iyi bir işletim sistemine ihtiyacımız var. LXC ve benzeri araçların sağladığı budur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.