Re: [Lug-bg] Disk scrubbing
- Subject: Re: [Lug-bg] Disk scrubbing
- From: Marian Marinov <mm@xxxxxxxx>
- Date: Tue, 20 Feb 2018 01:01:10 +0200
Ти същото можеш да направиш и с 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@xxxxxxxxxxxxxxxxxx
>> http://linux-bulgaria.org/mailman/listinfo/lug-bg
Attachment:
signature.asc
Description: OpenPGP digital signature
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|