Re: Disk scrubbing
browseman <[email protected]> Sun, 4 Mar 2018 10:54:45 +0200
| Newsgroups | gmane.linux.region.bulgaria |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --===============3997132008989448663== Content-Type: multipart/alternative; boundary="------------FB4F6950C649C6FF156514B8" Content-Language: bg This is a multi-part message in MIME format. --------------FB4F6950C649C6FF156514B8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit On 02/19/2018 04:36 PM, Marian Marinov wrote: > Здравейте група, > рядко вече се обсъждат интересни теми тук, но мисля да ви предложа един казус над който можем да "медитираме" заедно :) > > > Ние 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-R/uZOSXD/[email protected] > http://linux-bulgaria.org/mailman/listinfo/lug-bg Привет Аз имам следното доста баламско предложение за решение на казуса, може би няма да е приложимо в конкретният случай, но все пак ще споделя идеята: - монтира се дяла в произволна директория - изпълнява се нещо от сорта "#find /path/to/mounted/thinvol -xdev -type f | xargs shred -n1 -z -u", като разбира се ще има проблеми с файлове съдържащи интервали или други специални символи в името си, но все сравнително лесно решими - IMHO. - изтриват се всички директории - демонтира се и в/у дяла се изпълнява mkfs.{FS_TYPE} /dev/mapper/thinvol (с цел да се затрият и мета-данните от файловата система) - може и да има по-хитър начин, но поне аз не се досещам. Потенциален проблем ще има, ако съществува голям sparse, който неминуемо ще доведе до заемане на повече място от колко реално е използвал. 73. --------------FB4F6950C649C6FF156514B8 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body text="#000000" bgcolor="#FFFFFF"> <div class="moz-cite-prefix">On 02/19/2018 04:36 PM, Marian Marinov wrote:<br> </div> <blockquote type="cite" cite="mid:e0cd995e-59eb-1dc3-a0ac-0b3c892b7cf2-NV7Lj0SOnH0@public.gmane.org"> <pre wrap="">Здравейте група, рядко вече се обсъждат интересни теми тук, но мисля да ви предложа един казус над който можем да "медитираме" заедно :) Ние 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-на тези данни. Поздрави, Мариян </pre> <br> <fieldset class="mimeAttachmentHeader"></fieldset> <br> <pre wrap="">_______________________________________________ Lug-bg mailing list <a class="moz-txt-link-abbreviated" href="mailto:Lug-bg-R/uZOSXD/[email protected]">Lug-bg-R/uZOSXD/[email protected]</a> <a class="moz-txt-link-freetext" href="http://linux-bulgaria.org/mailman/listinfo/lug-bg">http://linux-bulgaria.org/mailman/listinfo/lug-bg</a> </pre> </blockquote> <p>Привет<br> <br> Аз имам следното доста баламско предложение за решение на казуса, може би няма да е приложимо в конкретният случай, но все пак ще споделя идеята:<br> <br> - монтира се дяла в произволна директория<br> - изпълнява се нещо от сорта "#find /path/to/mounted/thinvol -xdev -type f | xargs shred -n1 -z -u", като разбира се ще има проблеми с файлове съдържащи интервали или други специални символи в името си, но все сравнително лесно решими - IMHO.<br> - изтриват се всички директории<br> - демонтира се и в/у дяла се изпълнява mkfs.{FS_TYPE} /dev/mapper/thinvol (с цел да се затрият и мета-данните от файловата система) - може и да има по-хитър начин, но поне аз не се досещам.<br> <br> Потенциален проблем ще има, ако съществува голям sparse, който неминуемо ще доведе до заемане на повече място от колко реално е използвал.<br> <br> <br> 73.<br> </p> </body> </html> --------------FB4F6950C649C6FF156514B8-- --===============3997132008989448663== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Lug-bg mailing list Lug-bg-R/uZOSXD/[email protected] http://linux-bulgaria.org/mailman/listinfo/lug-bg --===============3997132008989448663==--