Проект

Общее

Профиль

Trim » История » Редакция 2

Редакция 1 (Андрей Волков, 2016-03-16 16:38) → Редакция 2/3 (Андрей Волков, 2016-03-16 17:42)

h1. Trim 

 h2. Проверка что SSD диск поддерживает TRIM 

 hdparm -I /dev/sda 

 {{collapse(вывод) 
 <pre> 
 /dev/sdc: 

 ATA device, with non-removable media 
	 Model Number:         OCZ-AGILITY3                             
	 Serial Number:        OCZ-500DYX5125F39XRF 
	 Firmware Revision:    2.25     
	 Transport:            Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0 
 Standards: 
	 Used: unknown (minor revision code 0x0110)  
	 Supported: 8 7 6 5  
	 Likely used: 8 
 Configuration: 
	 Logical 		 max 	 current 
	 cylinders 	 16383 	 16383 
	 heads 		 16 	 16 
	 sectors/track 	 63 	 63 
	 -- 
	 CHS current addressable sectors:     16514064 
	 LBA      user addressable sectors:    234441648 
	 LBA48    user addressable sectors:    234441648 
	 Logical    Sector size:                     512 bytes 
	 Physical Sector size:                     512 bytes 
	 Logical Sector-0 offset:                    0 bytes 
	 device size with M = 1024*1024:        114473 MBytes 
	 device size with M = 1000*1000:        120034 MBytes (120 GB) 
	 cache/buffer size    = unknown 
	 Nominal Media Rotation Rate: Solid State Device 
 Capabilities: 
	 LBA, IORDY(can be disabled) 
	 Queue depth: 32 
	 Standby timer values: spec'd by Standard, no device specific minimum 
	 R/W multiple sector transfer: Max = 16 	 Current = 16 
	 Advanced power management level: 254 
	 Recommended acoustic management value: 0, current value: 254 
	 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6  
	      Cycle time: min=120ns recommended=120ns 
	 PIO: pio0 pio1 pio2 pio3 pio4  
	      Cycle time: no flow control=120ns    IORDY flow control=120ns 
 Commands/features: 
	 Enabled 	 Supported: 
	    * 	 SMART feature set 
	    	 Security Mode feature set 
	    * 	 Power Management feature set 
	    * 	 Write cache 
	    	 Look-ahead 
	    * 	 Host Protected Area feature set 
	    * 	 WRITE_BUFFER command 
	    * 	 READ_BUFFER command 
	    * 	 NOP cmd 
	    * 	 DOWNLOAD_MICROCODE 
	    * 	 Advanced Power Management feature set 
	    	 Power-Up In Standby feature set 
	    * 	 SET_FEATURES required to spinup after power up 
	    * 	 48-bit Address feature set 
	    * 	 Mandatory FLUSH_CACHE 
	    * 	 FLUSH_CACHE_EXT 
	    * 	 SMART error logging 
	    * 	 SMART self-test 
	    * 	 General Purpose Logging feature set 
	    * 	 WRITE_{DMA|MULTIPLE}_FUA_EXT 
	    * 	 64-bit World wide name 
	    * 	 IDLE_IMMEDIATE with UNLOAD 
	    	 Write-Read-Verify feature set 
	    * 	 {READ,WRITE}_DMA_EXT_GPL commands 
	    * 	 Segmented DOWNLOAD_MICROCODE 
	    * 	 Gen1 signaling speed (1.5Gb/s) 
	    * 	 Gen2 signaling speed (3.0Gb/s) 
	    * 	 Gen3 signaling speed (6.0Gb/s) 
	    * 	 Native Command Queueing (NCQ) 
	    * 	 Host-initiated interface power management 
	    * 	 Phy event counters 
	    * 	 Device automatic Partial to Slumber transitions 
	    * 	 READ_LOG_DMA_EXT equivalent to READ_LOG_EXT 
	    * 	 DMA Setup Auto-Activate optimization 
	    	 Device-initiated interface power management 
	    * 	 Software settings preservation 
	    * 	 SMART Command Transport (SCT) feature set 
	    * 	 SCT Data Tables (AC5) 
	    * 	 SET MAX SETPASSWORD/UNLOCK DMA commands 
	    * 	 Data Set Management TRIM supported (limit 1 block) 
	    * 	 Deterministic read data after TRIM 
 Security:  
	 Master password revision code = 65534 
		 supported 
	 not 	 enabled 
	 not 	 locked 
	 not 	 frozen 
	 not 	 expired: security count 
	 not 	 supported: enhanced erase 
	 2min for SECURITY ERASE UNIT.  
 Logical Unit WWN Device Identifier: 5e83a97e2d4e3c1f 
	 NAA 		 : 5 
	 IEEE OUI 	 : e83a97 
	 Unique ID 	 : e2d4e3c1f 
 Checksum: correct 
 </pre> 
 }} 

 <pre> 
	    * 	 Data Set Management TRIM supported (limit 1 block) 
	    * 	 Deterministic read data after TRIM kernel 
 </pre> 


 Начальная поддержка discard появилась в ядре 2.6.28 
 Поддержка discard для swap появилась в ядре 2.6.29 
 Поддержка discard для btrfs появилась в ядре 2.6.32 
 Поддержка discard в libata (SATA driver library) появилась в ядре 2.6.33 
 Поддержка discard для ext4 появилась в ядре 2.6.33 
 Поддержка discard для vfat появилась в ядре 2.6.33 
 Поддержка discard для device-mapper (delay, linear, mpath, stripe) появилась в ядре 2.6.36 
 Поддержка discard для ext4(без журнала) появилась в ядре 2.6.36 
 Поддержка secure discard (1) появилась в ядре 2.6.36 
 Поддержка batched discard (2) для ext4 появилась в ядре 2.6.37 
 Поддержка batched discard (2) для ext3 появилась в ядре 2.6.38 
 Поддержка discard для dm-mirror появилась в ядре 2.6.38 
 Поддержка batched discard (2) для xfs появилась в ядре 2.6.38 
 Поддержка discard на уровне блочного устройства появилась в ядре 3.0 
 Поддержка discard для xfs появилась в ядре 3.0 
 Поддержка discard для loop устройств появилась в ядре 3.2 
 Поддержка discard для dm-thin устройств появилась в ядре 3.4 
 Поддержка подключения discard на лету для ext4(без журнала) появилась в ядре 3.7 
 Поддержка async discard для swap появилась в ядре 3.12 
 Поддержка discard для dm-raid (1,10,4,5,6) появилась в ядре 3.18 
 Поддержка batched discard (2) для f2fs появилась в ядре 3.18 
 Ускорение discard для dm-cache и dm-thin появилось в ядре 3.19 

 Источники:  
  https://clusterbuffer.wordpress.com/2011/10/02/how-do-you-know-trim-is-working-with-your-ssd-in-your-system/ 
  http://kernelnewbies.org/LinuxVersions 

 (1) - фича диска, позволяющая гарантированно удалить все копии discard блока (реализуется прошивкой диска) 
 (2) - discard выполняется одним ioctl() вызовом возвращая размер высвобожденного места. 

 LVM 2.02.85 

 Утилита fstrim 
 util-linux 2.19 

 Утилита blkdiscard 
 util-linux 2.23