Проект

Общее

Профиль

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

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

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