У меня есть два диска по 3 ТБ, которые, я надеюсь, будутточно такого же размера. Это означает, что я могу использовать dd
их для копирования, не будучи слишком короткими или слишком длинными.
Поэтому я попытался выяснить емкость/размер блочного устройства HDD и использовал для этого
fdisk /dev/sdX -l | grep "Disk /dev/sdX"
в моем случае оба устройства доступны через /dev/sda
и /dev/sdb
и с помощью команды выше я получаю
Disk /dev/sda: 3000.6GB, 3000592982016
и
Disk /dev/sdb: 3000.6GB, 3000592982016
и к моему счастливому облегчению, похоже, что оба устройства действительно имеют абсолютно одинаковый размер. Это то, что у них точное количество байтов.
Мой вопрос
Можно ли доверять этой информации? Особенно мне хотелось бы узнать, является ли это хотя бы обычной практикой/привычкой для HDD-устройств сохранять количество байтов постоянным с течением времени (т. е. не терять и не приобретать некоторые байты, например, из-за плохих секторов и т. д.)?
решение1
Любая корректировка, которую 2 HDD будут выполнять с течением времени, будет направлена на сохранение их полезного пространства, которое не повреждено и не испорчено, на том же количестве байтов. Все это происходит на более низком уровне для вас, пользователя HDD, поэтому я бы ожидал, что оба HDD будут сообщать об одинаковой емкости с течением времени.
ПРИМЕЧАНИЕ:Все современные жесткие диски включают дополнительный резерв пространства, из которого они могут извлекать данные по мере выхода из строя или износа секторов. Жесткий диск распознает, что эти секторы выходят из строя или повреждаются, и перераспределяет данные из резерва, отмечая неисправный сектор как непригодный для использования, так что он больше не входит в общий пул доступных секторов.
HDD должен продолжать нормально работать, пока это пространство не будет исчерпано, при условии отсутствия других катастрофических типов сбоев. После того, как пространство будет исчерпано, HDD будет вынужден расплатиться со всеми оставшимися плохими секторами. Он попытается переместить эти сбойные данные в хорошие сектора, но в процессе начнет выдавать ошибки ввода-вывода.
ПРИМЕЧАНИЕ:Вы можете контролировать резервное пространство жесткого диска в течение его срока службы с помощью SMART. РассматриваяSMART-атрибутыЯ подозреваю, что этот показатель будет №5:
5-Количество перераспределенных секторовКоличество неиспользуемых резервных секторов. При возникновении ошибки чтения/записи/проверки устройство переназначает плохой сектор на «здоровый», взятый из специального резервного пула. Нормализованное значение атрибута уменьшается по мере уменьшения количества доступных резервных секторов. На обычном жестком диске значение Raw указывает количество переназначенных секторов, которое обычно должно быть равно нулю. На SSD значение Raw указывает количество неисправных блоков флэш-памяти.
Вы можете проверить это с помощью smartctl
инструмента, который обычно входит в smartmontools
пакет (во всяком случае, так он называется в Fedora 20).
$ sudo smartctl --all /dev/sda
В этом выводе много полезной информации:
smartctl 6.2 2014-07-16 r3952 [x86_64-linux-3.16.3-200.fc20.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Device Model: LITEONIT LMT-256M3M
Serial Number: 002244119905
LU WWN Device Id: 5 000000 000000000
Firmware Version: VZJ4
User Capacity: 256,060,514,304 bytes [256 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ATA8-ACS, ATA/ATAPI-7 T13/1532D revision 4a
SATA Version is: SATA 3.0, 6.0 Gb/s
Local Time is: Fri Oct 10 12:32:12 2014 EDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 10) seconds.
Offline data collection
capabilities: (0x15) SMART execute Offline immediate.
No Auto Offline data collection support.
Abort Offline collection upon new
command.
No Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
No Selective Self-test supported.
SMART capabilities: (0x0002) Does not save SMART data before
entering power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x00) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 10) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x0003 100 100 070 Pre-fail Always - 0
5 Reallocated_Sector_Ct 0x0003 100 100 000 Pre-fail Always - 0
9 Power_On_Hours 0x0002 100 100 000 Old_age Always - 2248
12 Power_Cycle_Count 0x0002 100 100 000 Old_age Always - 706
171 Unknown_Attribute 0x0032 000 000 000 Old_age Always - 0
172 Unknown_Attribute 0x0032 000 000 000 Old_age Always - 0
173 Unknown_Attribute 0x0032 000 000 000 Old_age Always - 12
174 Unknown_Attribute 0x0030 000 000 000 Old_age Offline - 126
178 Used_Rsvd_Blk_Cnt_Chip 0x0003 100 100 000 Pre-fail Always - 0
187 Reported_Uncorrect 0x0002 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0003 100 100 000 Pre-fail Always - 126
230 Unknown_SSD_Attribute 0x0032 100 100 000 Old_age Always - 24851
232 Available_Reservd_Space 0x0003 100 100 010 Pre-fail Always - 2784
241 Total_LBAs_Written 0x0003 100 100 000 Pre-fail Always - 86211
242 Total_LBAs_Read 0x0003 100 100 000 Pre-fail Always - 25145
SMART Error Log Version: 0
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
Selective Self-tests/Logging not supported
Информация, на которую я ссылался, находится в последней таблице, идентификатор №5.
Рекомендации
решение2
Если вы хотите узнать размер устройства (в байтах), вы можете использовать blockdev:
# blockdev --getsize64 /dev/sde
2000398934016
В этом примере /dev/sde
диск на 2 ТБ, или по крайней мере, это то, что видит ядро. Естественно, fdisk
и parted
другие должны показывать ту же информацию.
Этот размер не меняется. Потеря емкости из-за плохих секторов невозможна, это вызовет массу проблем; перераспределение секторов использует внутренний резерв, и диск обычно полностью умирает до того, как он израсходуется. Вам следует заменить его, прежде чем все станет настолько плохо.
Некоторые предпочитают оставлять небольшое неразмеченное пространство (несколько мегабайт) в конце диска, поскольку новый диск может иметь не совсем такой же размер, как старый, и это может затруднить такие вещи, как замена участников RAID, если новое устройство покажется вам слишком маленьким.