Historia ya shida ya uhamiaji wa uhifadhi wa kizimbani (mizizi ya docker)

Sio zaidi ya siku chache zilizopita, iliamuliwa kwa moja ya seva kuhamisha uhifadhi wa kizimbani (saraka ambayo docker huhifadhi kontena zote na faili za picha) kwa sehemu tofauti, ambayo
alikuwa na uwezo mkubwa zaidi. Kazi hiyo ilionekana kuwa ndogo na haikutabiri shida ...

Kuanza:

1. Simamisha na uue vyombo vyote vya programu yetu:

docker-compose down

ikiwa kuna vyombo vingi na viko katika nyimbo tofauti, unaweza kufanya hivi:

docker rm -f $(docker ps -q)

2. Zima daemon ya docker:

systemctl stop docker

3. Hamisha saraka hadi eneo linalohitajika:

cp -r /var/lib/docker /docker/data/storage

4. Tunamwambia daemon ya docker kuangalia kwenye saraka mpya. Kuna chaguzi kadhaa: ama tumia -g bendera kuelekeza daemon kwenye njia mpya, au usanidi wa systemd, ambao tulitumia. Au ulinganifu. Sitaingia kwa undani sana kuhusu hili, ni kwenye mtandao. kamili miongozo ya kuhamisha mzizi wa kizimbani hadi eneo jipya.

5. Anzisha daemon ya docker na uhakikishe kuwa inaonekana mahali pazuri:

systemctl status docker

Katika moja ya mistari ya pato tunapaswa kuona:

β”œβ”€19493 /usr/bin/dockerd --data-root=/docker/data/storage

Tulihakikisha kuwa chaguo hilo limepitishwa kwa daemon, sasa hebu tuangalie ikiwa iliitumia (asante inkvizitor68sl)!

docker info | awk '/Root Dir/ {print $NF}' 

6. Wacha tuanze maombi yetu:

docker-compose up -d

7. Angalia

Na hapa furaha huanza, DBMS, MQ, kila kitu ni sawa! Hifadhidata iko sawa, kila kitu hufanya kazi ... isipokuwa nginx. Tunayo ujenzi wetu wa nginx na Kerberos na courtesans. Na kutazama kumbukumbu za kontena kulionyesha kuwa haiwezi kuandika kwa /var/tmp - Ruhusa imekataliwa. Ninapiga mahekalu yangu kwa vidole vyangu na kujaribu kuchambua hali ... Je! Picha ya Docker haikubadilika. Tumehamisha saraka. Ilifanya kazi kila wakati, na hapa ni kwa ajili yako ... Kwa ajili ya majaribio, niliingia kwenye chombo na mikono yangu na kubadilisha haki za saraka hii, kulikuwa na mzizi, mzizi 755, alitoa mzizi, mzizi 777. Na kila kitu kilianza ... Mawazo yalianza kusikika katika kichwa changu - aina fulani ya upuuzi ... Nilidhani, vizuri, labda sikuzingatia kitu ...

Niliamua kwamba tulipenda haki za ufikiaji wa faili wakati wa uhamishaji. Tulisimamisha programu, daemon ya docker, tukafuta saraka mpya na kunakili saraka ya /var/lib/docker kwa kutumia. rsync -a.

Nadhani kila kitu kiko sawa sasa, wacha tuinue programu ya Docker.

Aaand... tatizo lilibakia... Jicho langu lilinitoka. Nilikimbilia kwenye koni ya mashine yangu ya kawaida, ambapo ninaendesha vipimo mbalimbali, nilikuwa na picha hii ya nginx, na nikapanda ndani ya chombo, na hapa haki za saraka ya / var / tmp ni mizizi, mizizi 777. Hiyo ni, sawa na nililazimika kuweka kwa mikono. Lakini picha zinafanana!

Mfumo wa faili wa xfs ulitumika kila mahali.

Nililinganisha kutumia amri

docker inspect my-nginx:12345

Hashes zote zinafanana, zote moja hadi moja. Kwenye seva na kwenye mashine yangu ya kawaida. Nilifuta picha ya nginx ya ndani na kuivuta tena kutoka kwa Usajili, ambayo kwa sababu kadhaa iko kwenye mashine moja. Na shida ni sawa ... Sasa jicho langu la pili linatetemeka.

Sikumbuki tena ni mawazo gani yalikuwa kichwani mwangu, zaidi ya kupiga kelele "AAAAAAAAAA" na mambo mengine. Ilikuwa saa 4 asubuhi, na msimbo wa chanzo wa Docker ulitumiwa kuelewa kanuni ya tabaka za picha za hashing. Ilifungua kopo la tatu la kinywaji cha nishati. Na mwishowe ilikuja kwangu kwamba hashing inazingatia faili tu, yaliyomo, lakini KUTOPATA HAKI! Hiyo ni, kwa njia fulani ya kushangaza haki zetu zimepotea, selinux imezimwa, acl haitumiki, na hakuna biti ya kunata.

Nilifuta picha ya ndani, pia nilifuta picha kutoka kwa usajili wa docker na kuisukuma tena. Na kila kitu kilifanya kazi. Inatokea kwamba wakati wa uhamisho haki zilipotea, ndani ya picha ya ndani na ndani ya picha iliyo kwenye Usajili. Kama nilivyosema tayari, kwa sababu kadhaa ilikuwa iko kwenye gari moja. Na matokeo yake, katika saraka moja /var/lib/docker.

Na kutarajia swali ikiwa walijaribu kurudisha macho ya docker kwenye saraka ya zamani - hapana, hawakujaribu, ole, hali hazikuruhusu. Ndio, na kwa kweli nilitaka kujua.

Baada ya kuandika makala hii, suluhisho la tatizo linaonekana wazi kwangu, lakini wakati wa uchambuzi haukuonekana hivyo. Kusema kweli, nili Google na sikupata hali kama hizo.

Matokeo: Nilitatua tatizo, bado sielewi sababu =(

Ikiwa kuna mtu anajua, nadhani, alikuwa na maono juu ya sababu zinazowezekana za shida hii, nitafurahi sana kusikia kutoka kwako kwenye maoni!

Chanzo: mapenzi.com

Kuongeza maoni