Проект

Общее

Профиль

Trim » История » Версия 2

Андрей Волков, 2016-03-16 17:42

1 1 Андрей Волков
h1. Trim
2
3
h2. Проверка что SSD диск поддерживает TRIM
4
5
hdparm -I /dev/sda
6
7
{{collapse(вывод)
8
<pre>
9
/dev/sdc:
10
11
ATA device, with non-removable media
12
	Model Number:       OCZ-AGILITY3                            
13
	Serial Number:      OCZ-500DYX5125F39XRF
14
	Firmware Revision:  2.25    
15
	Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
16
Standards:
17
	Used: unknown (minor revision code 0x0110) 
18
	Supported: 8 7 6 5 
19
	Likely used: 8
20
Configuration:
21
	Logical		max	current
22
	cylinders	16383	16383
23
	heads		16	16
24
	sectors/track	63	63
25
	--
26
	CHS current addressable sectors:   16514064
27
	LBA    user addressable sectors:  234441648
28
	LBA48  user addressable sectors:  234441648
29
	Logical  Sector size:                   512 bytes
30
	Physical Sector size:                   512 bytes
31
	Logical Sector-0 offset:                  0 bytes
32
	device size with M = 1024*1024:      114473 MBytes
33
	device size with M = 1000*1000:      120034 MBytes (120 GB)
34
	cache/buffer size  = unknown
35
	Nominal Media Rotation Rate: Solid State Device
36
Capabilities:
37
	LBA, IORDY(can be disabled)
38
	Queue depth: 32
39
	Standby timer values: spec'd by Standard, no device specific minimum
40
	R/W multiple sector transfer: Max = 16	Current = 16
41
	Advanced power management level: 254
42
	Recommended acoustic management value: 0, current value: 254
43
	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
44
	     Cycle time: min=120ns recommended=120ns
45
	PIO: pio0 pio1 pio2 pio3 pio4 
46
	     Cycle time: no flow control=120ns  IORDY flow control=120ns
47
Commands/features:
48
	Enabled	Supported:
49
	   *	SMART feature set
50
	    	Security Mode feature set
51
	   *	Power Management feature set
52
	   *	Write cache
53
	    	Look-ahead
54
	   *	Host Protected Area feature set
55
	   *	WRITE_BUFFER command
56
	   *	READ_BUFFER command
57
	   *	NOP cmd
58
	   *	DOWNLOAD_MICROCODE
59
	   *	Advanced Power Management feature set
60
	    	Power-Up In Standby feature set
61
	   *	SET_FEATURES required to spinup after power up
62
	   *	48-bit Address feature set
63
	   *	Mandatory FLUSH_CACHE
64
	   *	FLUSH_CACHE_EXT
65
	   *	SMART error logging
66
	   *	SMART self-test
67
	   *	General Purpose Logging feature set
68
	   *	WRITE_{DMA|MULTIPLE}_FUA_EXT
69
	   *	64-bit World wide name
70
	   *	IDLE_IMMEDIATE with UNLOAD
71
	    	Write-Read-Verify feature set
72
	   *	{READ,WRITE}_DMA_EXT_GPL commands
73
	   *	Segmented DOWNLOAD_MICROCODE
74
	   *	Gen1 signaling speed (1.5Gb/s)
75
	   *	Gen2 signaling speed (3.0Gb/s)
76
	   *	Gen3 signaling speed (6.0Gb/s)
77
	   *	Native Command Queueing (NCQ)
78
	   *	Host-initiated interface power management
79
	   *	Phy event counters
80
	   *	Device automatic Partial to Slumber transitions
81
	   *	READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
82
	   *	DMA Setup Auto-Activate optimization
83
	    	Device-initiated interface power management
84
	   *	Software settings preservation
85
	   *	SMART Command Transport (SCT) feature set
86
	   *	SCT Data Tables (AC5)
87
	   *	SET MAX SETPASSWORD/UNLOCK DMA commands
88
	   *	Data Set Management TRIM supported (limit 1 block)
89
	   *	Deterministic read data after TRIM
90
Security: 
91
	Master password revision code = 65534
92
		supported
93
	not	enabled
94
	not	locked
95
	not	frozen
96
	not	expired: security count
97
	not	supported: enhanced erase
98
	2min for SECURITY ERASE UNIT. 
99
Logical Unit WWN Device Identifier: 5e83a97e2d4e3c1f
100
	NAA		: 5
101
	IEEE OUI	: e83a97
102
	Unique ID	: e2d4e3c1f
103
Checksum: correct
104
</pre>
105
}}
106
107 2 Андрей Волков
<pre>
108
	   *	Data Set Management TRIM supported (limit 1 block)
109
	   *	Deterministic read data after TRIM
110
</pre>
111
112
113
Начальная поддержка discard появилась в ядре 2.6.28
114
Поддержка discard для swap появилась в ядре 2.6.29
115
Поддержка discard для btrfs появилась в ядре 2.6.32
116
Поддержка discard в libata (SATA driver library) появилась в ядре 2.6.33
117
Поддержка discard для ext4 появилась в ядре 2.6.33
118
Поддержка discard для vfat появилась в ядре 2.6.33
119
Поддержка discard для device-mapper (delay, linear, mpath, stripe) появилась в ядре 2.6.36
120
Поддержка discard для ext4(без журнала) появилась в ядре 2.6.36
121
Поддержка secure discard (1) появилась в ядре 2.6.36
122
Поддержка batched discard (2) для ext4 появилась в ядре 2.6.37
123
Поддержка batched discard (2) для ext3 появилась в ядре 2.6.38
124
Поддержка discard для dm-mirror появилась в ядре 2.6.38
125
Поддержка batched discard (2) для xfs появилась в ядре 2.6.38
126
Поддержка discard на уровне блочного устройства появилась в ядре 3.0
127
Поддержка discard для xfs появилась в ядре 3.0
128
Поддержка discard для loop устройств появилась в ядре 3.2
129
Поддержка discard для dm-thin устройств появилась в ядре 3.4
130
Поддержка подключения discard на лету для ext4(без журнала) появилась в ядре 3.7
131
Поддержка async discard для swap появилась в ядре 3.12
132
Поддержка discard для dm-raid (1,10,4,5,6) появилась в ядре 3.18
133
Поддержка batched discard (2) для f2fs появилась в ядре 3.18
134
Ускорение discard для dm-cache и dm-thin появилось в ядре 3.19
135
136
Источники: 
137
 https://clusterbuffer.wordpress.com/2011/10/02/how-do-you-know-trim-is-working-with-your-ssd-in-your-system/
138
 http://kernelnewbies.org/LinuxVersions
139
140
(1) - фича диска, позволяющая гарантированно удалить все копии discard блока (реализуется прошивкой диска)
141
(2) - discard выполняется одним ioctl() вызовом возвращая размер высвобожденного места.
142
143 1 Андрей Волков
LVM 2.02.85
144
145
Утилита fstrim
146
util-linux 2.19
147
148
Утилита blkdiscard
149
util-linux 2.23