Предоставляет ли `/proc/partitions` и/или `fdisk -l /dev/sdX` достоверный размер устройства?

Предоставляет ли `/proc/partitions` и/или `fdisk -l /dev/sdX` достоверный размер устройства?

У меня есть два диска по 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, если новое устройство покажется вам слишком маленьким.

Связанный контент