Ти същото можеш да направиш и с dd if=/dev/zero of=/dev/something.
Проблемът и на двата подхода е, че записва нулите на диска и така унищожава 
benefit-а на thinpool-а.

За да стане по-ясно, нека приемем, че имаме едно SSD върху което има един 
единствен partition направен на LVM Physical Volume.
Този PV се използва в една VG, където сме направили thinpool.

В thinpool-а се прави partition от да кажем 500GB но SSD-то е 1TB.
Сега правим snapshot на 500GB partition-а, който е пълен с да кажем 100GB данни 
и реално сме с не повече от 102GB данни, заради това, че цялото нещо е 
направено в thinpool-а.

Проблемът е, че ако направим още 4-5 такива snapshot-а и те не си използват 
пространството през целият си живот, то ако в един момент от времето решим да 
scrub-нем два volume-а ще напълним на 100% corepool-а и ще го счупим :(

Ние имаме защита за това, но остава въпросът, как да ги scrub-на тези volumes?

А какво ще стане ако нямам място да scrub-на дори един от тези 500GB partitions?

Всяко нещо, което записва по всички блокове на /dev/something ще увеличи 
snapshot-а до пълната големина на logical volume-а, затова и търся нещо, което 
да пипа единствено блоковете, които имат данни различни от 0.


On 02/19/2018 11:31 PM, Neter wrote:
> Добре де, ами какво се случва, ако се изпълни това в прикачения файл 
> (неизвестно защо клиентът ми не ще да го изпрати вписано в тялото на 
> писмото)? Сигурен съм, че може да се напише и по-кратко, но за идеята :)
> 
> На 19.02.2018 16:36, Marian Marinov написа:
>> Здравейте група,
>> рядко вече се обсъждат интересни теми тук, но мисля да ви предложа един 
>> казус над който можем да "медитираме" заедно :)
>>
>>
>> Ние scrub-ваме дисковете на всички containers, които се destroy-ват в нашата 
>> система, но предвид, че използваме thinpools се получава следният неприятен 
>> казус.
>> Ако thinpool-а е на 85% и някой си направи много голям volume, докато този 
>> volume не е много пълен системата няма проблем.
>> Но в момента в който клиента си изтрие container-а ние започваме да 
>> scrub-ваме с dd и реално пълним цеият капацитет и можем без да искаме да 
>> препълним thinpool-a :(
>>
>> Ta въпросът ми е, сещате ли се за начин по който да се запишат данни върху 
>> един partition/logical volume, само върху секторите в които реално има данни 
>> :)
>>
>> По принцип chunksync & casync прават подобен анализ на volume-а и копират 
>> само разликите, но на мен ми трябва вместо разлики да се записват данни, пък 
>> било то и нули.
>>
>> Аз в момента обмислям дали да patch-на dd, да има опция която да му казва да 
>> прочете блокчето и ако там няма данни да не записва нищо или да напиша 
>> fstool, който да чете fs table-а и да overwrite-ва само блоковете, за които 
>> FS-а знае, че има данни.
>>
>> Проблемът на вторият подход е, че ако даден файл е изтрит от FS-а и на 
>> негово място(на неговите blocks) няма нови данни, това означава, че ще 
>> пропусна да scrub-на тези данни.
>>
>>
>> Поздрави,
>> Мариян
>>
>>
>> _______________________________________________
>> Lug-bg mailing list
>> Lug-bg@linux-bulgaria.org
>> http://linux-bulgaria.org/mailman/listinfo/lug-bg


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Lug-bg mailing list
Lug-bg@linux-bulgaria.org
http://linux-bulgaria.org/mailman/listinfo/lug-bg

Reply via email to