Целостность данных BTRFS (CRC32c) и целостность данных жесткого диска (сектор ECC)

Можно использовать find команда. Следующая команда перечислит вниз все файлы, измененные в течение прошлых 60 дней

find . -name 'AA_XX_*' -mtime -60

Вот сценарий оболочки для достижения, что Вы хотите, но я согласился бы, что это не чистое решение. Мне, самому, не нравится этот неуклюжий код, но затем он будет работать на Вас, в течение времени, будучи

#!/usr/local/bin/bash

YEAR=`date +%Y`
MONTH=`date +%m`
DATE=`date +%d`

if [ $MONTH = 01 ]; then
    OLDEST=`expr $YEAR - 1`11010000
    NEWEST=`expr $YEAR - 1`12312359
elif [ $MONTH = 02 ]; then
    OLDEST=`expr $YEAR - 1`12010000
    echo $YEAR
    NEWEST="$YEAR"01312359
else
    case $MONTH in
            03)
            OLDEST=$YEAR0`expr $MONTH - 2`010000
            if [ $YEAR%4 = 0 ]; then
                    DATE=29
            else
                    DATE=28
            fi
            NEWEST=$YEAR0`expr $MONTH - 1`"$DATE"2359;;

            04|06|09|11)
            OLDEST=$YEAR0`expr $MONTH - 2`010000
            NEWEST=$YEAR0`expr $MONTH - 1`312359;;

            07|08|10|12)
            OLDEST=$YEAR0`expr $MONTH - 2`010000
            NEWEST=$YEAR0`expr $MONTH - 1`302359;;
        esac
fi

echo $OLDEST
echo $NEWEST

touch -t $OLDEST oldest
touch -t $NEWEST newest

find . -name 'AA_XX_*' -newer oldest ! -newer newest > temp.txt
7
05.12.2014, 12:55
4 ответа

Я просто не покупаю такие аргументы, что диски регулярно не сообщали об ошибках и рисуют мелом его до FUD. Да, при броске достаточного количества случайных данных в код с обнаружением ошибок они будут иногда сообщать, что данные корректны, когда это не. Вот вещь хотя: диск не пытается считать случайные данные. Это считывает данные, которые были главным образом записаны и читали назад правильно. Это затем проходит через код с коррекцией ошибок, который может зафиксировать много ошибочных битов. Для получения ошибки, о которой не сообщают, необходимо получить намного более высокое чем обычно количество необработанных ошибок сокрушить ECC, и затем они должны быть расположены просто право так, чтобы вывод ECC был самостоятельно расположен просто право , что это дурачит EDC, заставляя думать, это хорошо. Шансы очень выше, что, по крайней мере, EDC заметит ошибку и сообщит об этом как о некорректируемой ошибке. Как часто делает , что происходят? В основном никогда, если диск не приближается к отказу или имел внезапные потери мощности во время записи. Таким образом, если некорректируемой ошибки почти никогда не происходит, и ошибка, о которой не сообщают, является миллионом раз менее вероятно, что это говорит вам?

, С другой стороны, при хранении дубликата данных во всяком случае, вероятно, хорошо иметь некоторый способ сказать, какой корректен в очень маловероятном событии, что одна копия действительно становится тихо поврежденной. Также crc полезен для обнаружения блоков, которые, оказывается, содержат дубликаты тех же данных, таким образом, они могут быть дедуплицированы, который является другой конструктивной особенностью btrfs.

1
27.01.2020, 20:17

Да, это не доверяет устройству, чтобы сообщить об ошибках или хранить правильные данные в первую очередь. На самом деле необходим ли это другой вопрос целиком. Это не то, что кто-то беспокоит, обычно, и вещи просто работают.

Если у вас есть диск, который не сообщает об ошибках, в любом случае у вас есть огромная проблема; Это не только файловые системы, которые полагаются на такую ​​ошибку, но и другие компоненты, такие как контроллеры RAID и т. Д.; Недостаточно хранилище помещает все ваши данные риски, а не только несколько битов.

Независимо от того, будет ли ваша файловая система проверяет, вы всегда должны запускать свои собственные тесты на хранилище; Такие как умные самотезы, или в случае RAID, проверьте несоответствия в данных четности ( / SYS / BLOCK / MDX / MD / MISMATCH_CNT = 0 после запуска Check Sync_action).

0
27.01.2020, 20:17

Для отправки электронной почты пользователю по IP-адресу необходимо заключить адрес в скобки, например dest _ user @ [ip.ad.dr.ess] .

Будет ли эта адресация принята принимающим сервером, является другой проблемой. Мои почтовые серверы не принимают адрес электронной почты, адресованный этому IP-адресу.

-121--133623-
$ badvpn-tun2socks --tundev $tun --netif-ipaddr 169.254.1.2 \
    --netif-netmask 255.255.255.252 --socks-server-addr $socks_server \
    --udpgw-transparent-dns

ПРИМЕЧАНИЕ: необходимо добавить --udpgw-transparent-dns для DNS-запроса.

-121--50385-

Диски могут и делают бесшумно поврежденные данные. См. http://storagemojo.com/2007/09/19/cerns-data-corruption-research/ только один пример исследования по этому вопросу.

7
27.01.2020, 20:17

Это хорошо сработало для меня. Вы можете найти все идентификаторы процессов по имени пользователя, выполнив команду ps U < имя _ пользователя > и отправившись оттуда. Попробуйте сделать следующее:

ps U <username> | cut -d " " -f 1 | xargs kill
-121--10135-

Вы можете сделать что-то подобное:

awk -v low=24 -v high=655 'NR >= low && NR <= high{if (!a[$0]++) print; next};{print}' file

или лучше

 awk -v low=100 -v high=200 'NR < low || NR > high || !a[$0]++' test.file
-121--128877-

btrfs является файловой системой следующего поколения - она охватывает многие из тех же целей, что и прошлые модели слоёв, обрабатываемые между ними. btrfs также является чрезвычайно обширным стеком - часто задаваемые вопросы рекомендуют, чтобы он был записан на неразделенный диск * [s] * и чтобы все разбиения, квоты, сжатие, создание образов, чередование, копирование при записи, дедупликация и, возможно, 10 другие вещи, о которых я забываю, обрабатывались как качества одной только файловой системы. Он может делать все это и многое другое.

btrfs дисковые массивы являются динамическими - их можно добавлять и удалять в продуктивной системе без проблем. Это происходит потому, что btrfs удаляет группы места хранения блоков только тогда, когда они нужны, и они могут находиться на любом конкретном устройстве в текущем массиве. FAQ имеет некоторые вещи, чтобы сказать об этом - особенно там, где он говорит о ненадежности оценки свободного пространства:

Например, если у вас есть один субтомом как «один», а один как RAID-1, то первый субтомом будет потреблять необработанное место хранения со скоростью один байт для каждого байта записанных данных. Второй субтомик будет принимать два байта необработанных данных для каждого байта записанных данных. Таким образом, если у нас есть 30GiB свободного пространства, мы могли бы сохранить 30GiB данных в первом подтоме или 15GiB данных во втором, и нет способа узнать, что это будет, пока пользователь не запишет эти данные.

Так, в общем, невозможно дать точную оценку количества свободного места на какой-либо файловой системе btrfs. Да, это отстой . Если у вас есть действительно хорошая идея для того, как сделать его простым для пользователей, чтобы понять, сколько места у них осталось, пожалуйста, дайте нам знать, но также, пожалуйста, помните, что лучшие умы в развитии btrfs думали об этой проблеме по крайней мере пару лет, и мы еще не нашли простого решения.

Чтение соответствующего раздела предложит вам более конкретные примеры, но это очень ясно дает понять, что btrfs устройства могут быть переменными по количеству, эпехемерными по стойкости, заблокированными и полосатыми по отдельности или вместе и... Ну, это продолжается. Еще одна цитата из FAQ:

Управление устройствами является сложной темой, и существует множество различных мнений о том, как лучше всего это сделать. Внутренний код Btrfs отделяет компоненты, связанные с управлением устройствами, и поддерживает для них собственные уровни. Подавляющее большинство метаданных файловой системы не имеет представления о наличии нескольких устройств.

Здесь говорится о RAID:

btrfs поддерживает RAID-0, RAID-1 и RAID-10. Начиная с Linux 3.9, btrfs также поддерживает RAID-5 и RAID-6, хотя этот код всё ещё является экспериментальным.

btrfs сначала объединяет все устройства в пул места хранения,и затем дублирует порции при создании файловых данных. В настоящее время RAID-1 определяется как «2 копии всех данных на разных устройствах». Это отличается от MD-RAID и dmraid тем, что они делают ровно n копий для n устройств. В RAID-1 btrfs на трех устройствах емкостью 1 Тбайт мы получаем 1,5 Тбайт полезных данных. Поскольку каждый блок копируется только на 2 устройства, запись данного блока требует записи только на 2 устройства; чтение может быть выполнено только из одного.

Восстановление данных:

Преимущество btrfs-raid 5/6 в том, что в отличие от MD-RAID, btrfs знает, какие блоки фактически используются данными/метаданными, и может использовать эту информацию в ситуации восстановления/восстановления только для синхронизации/восстановления фактически использованных блоков на повторно добавленном или заменяющем устройстве, пропуская блоки, которые были полностью неиспользуемыми/пустыми в первую очередь.

MD-RAID не может этого сделать, потому что он пытается быть агностическим уровнем файловой системы, который не знает и не заботится о том, какие блоки на уровнях над ним были фактически использованы или пусты. Для него, чтобы попытаться отследить, что будет нарушение уровня и серьезно усложнит код и/или ограничит использование только тех файловых систем или других уровней выше, которые он поддерживает/понимал/мог бы правильно отслеживать.

Конечно, btrfs спроектирован от земли до преодолевающих слоев. Для этого он должен поддерживать контрольное взвешенное, перестраиваемое и, надеюсь, по крайней мере несколько избыточное дерево, которое содержит все его в настоящее время встроенные устройства. btrfs во многих путях является файловой базой данных, а также файловой системой. Он не полагается на базовые устройства для ecc, поскольку в значительной степени не считает, что являются базовыми устройствами. Ты можешь подумать об этом как о дисковом кудзу, может быть.

В любом случае именно постоянная контрольная сумма и управление метаданными позволяют btrfs делать так много интересных вещей, которые он делает, и делать это без особого учета его основного оборудования.

1
27.01.2020, 20:17

Теги

Похожие вопросы