Workshop: zuinige NAS, zuinige file server

Door mrmrmr op woensdag 1 juli 2020 06:00 - Reacties (32)
Categorieën: Operating systems, Systemen, Zuinig, Views: 8.965

Naar aanleiding van de BGG van juli 2020 geeft dit artikel een praktische handleiding voor de bouw van een zuinige maar toch krachtige file server of NAS.

Velen van ons hebben in het verleden een opslagserver gedraaid die misschien wel 50W of zelfs meer verbruikte. Doordat zo'n server doorgaans altijd aan staat zijn de energiekosten tamelijk hoog. Elke Watt vertaald zich naar 8,76 kWh verbruik per jaar, bij 50W continuverbruik is dat 438 kWh.
Elke Watt van apparatuur die altijd aan staat kost omstreeks 2 euro per jaar. Voor 50W wordt dat 100 euro. Bij een economische levensduur van 5 jaar gaat het over 500 euro, de helft van de aanschafprijs van een server met 6 drives.

laag in idle (vanaf 4W), 4x SATA:
#CategoryProductPrijsSubtotaal
1ProcessorsIntel Pentium Gold G5400 Boxed€ 57,35€ 57,35
1MoederbordenFujitsu D3643-H€ 98,49€ 98,49
1Geheugen internCrucial CT2K4G4DFS824A€ 30,17€ 30,17
4KabelsAkasa PROSLIM SATA 3.0 50cm€ 4,15€ 16,60
1KabelsMini-box P4 convertercable (for PicoPSU)€ 9,20€ 9,20
1KabelsStartech.com 4x SATA Power Splitter Adapter Cable (PYO4SATA)€ 4,60€ 4,60
1ProcessorkoelingArctic Alpine 12 Passive€ 10,95€ 10,95
1VoedingenMini-box picoPSU 80 + 60W Adapter Power Kit€ 52,01€ 52,01
1Solid state drivesIntel 660p 512GB€ 74,50€ 74,50
Bekijk collectie
Importeer producten
Totaal€ 353,17


laag in idle (vanaf 4W), 6x SATA:
#CategoryProductPrijsSubtotaal
1ProcessorsIntel Pentium Gold G5400 Boxed€ 57,35€ 57,35
1MoederbordenFujitsu D3642-B€ 135,-€ 135,-
1Geheugen internCrucial CT2K4G4DFS824A€ 30,17€ 30,17
6KabelsAkasa PROSLIM SATA 3.0 50cm€ 4,15€ 24,90
1KabelsMini-box P4 convertercable (for PicoPSU)€ 9,20€ 9,20
2KabelsStartech.com 4x SATA Power Splitter Adapter Cable (PYO4SATA)€ 4,60€ 9,20
1ProcessorkoelingArctic Alpine 12 Passive€ 10,95€ 10,95
1VoedingenMini-box picoPSU 80 + 60W Adapter Power Kit€ 52,01€ 52,01
1Solid state drivesIntel 660p 512GB€ 74,50€ 74,50
Bekijk collectie
Importeer producten
Totaal€ 403,27

Toe te voegen onderdelen:
• 2.5" hard drives
• tower kast geschikt voor de drives

Besturingssysteem:
Windows 10 of Debian/Ubuntu aangevuld met Samba en andere specifieke packages voor dnla, 'cloud'.

Bepaalde doelgerichte distributies kunnen een belasting leggen op de server of ze zijn niet goed in het gebruik van low power modes. Een voorbeeld daarvan is FreeNAS, dat gebaseerd is op FreeBSD. Zie de vergelijking van besturingssystemen en energiezuinigheid in random bits: Nieuwe zuinige productie server. De stapeling van besturingssystemen als Virtual Machines (VM's) zorgt voor overhead. Hypervisors hebben soms weinig ondersteuning voor low power modes (zoals ESXi) of ze zetten het juist uit (zoals Windows Hyper-V). Alternatieve segmentatiemogelijkheden kunnen zuiniger zijn, zoals bepaalde vormen van containers. Zie gepinde posts in Het grote zuinige server topic - deel 2 voor het verbruik.

SSD's
SSD's worden meestal gebruikt als boot disks. Het besturingssysteem staat er op, logs en andere wisselde data. SATA SSD's hebben typisch een lager actief verbruik dan NVMe SSD's. SSD's met een grote bandbreedte zijn niet nodig voor een file server omdat het netwerk de bottleneck is. SATA SSD's bieden voldoende snelheid. In het voorbeeld systeem is een M.2 NVMe SSD opgenomen zodat maximale uitbreiding mogelijk is. Anandtech is een goede bron van informatie met tests van het energieverbruik van SSD's. Relatief zuinig zijn M.2 Intel 660p NVMe en SATA-3 Samsung EVO/QVO 860.

Hard drives
Het systeem kan worden aangevuld met 4 of 6 stuks zuinige 2.5" hard drives. 3.5" hard drives verbruiken typisch circa 3 tot 6 keer meer dan 2.5" hard drives. In zuinige systemen kunnen hard drives in idle voor een hoger verbruik zorgen dan de rest van het systeem.

De grootste capaciteit in 2.5" drives wordt geboden door Seagate 4TB en 5TB. Ze zijn het goedkoopst als externe drives. Daarin worden ST4000LM024 (4TB) of een ST5000LM000 (5TB) SATA drives toegepast. Ze zijn verkrijgbaar onder de Seagate en Maxtor merken. Pricewatch lijst.



De 5TB is regelmatig in de aanbieding bij amazon en soms bij Coolblue en Mediamarkt voor 99 euro en de 4TB versie voor ongeveer 85 euro. Amazon.de of amazon.nl biedt eigen versies aan die misschien niet te vinden zijn in pricewatch.

We gebruiken met opzet geen RAID configuratie, RAID houdt vaak alle of meerdere drives draaiende en daardoor neemt het verbruik aanzienlijk toe. Het heeft ook andere nadelen, het beschermt niet tegen gebruikers- of systeemfouten en het maakt troubleshooting moeilijk. Backup voor gegevens die niet verloren mogen gaan is een goede oplossing.

Het is aan te raden voor gebruik hard drives uitgebreid te testen. Daarvoor kun je een tool gebruiken die daadwerkelijk (bijna) de hele disk volschrijft en terugleest, zoals h2testw. Sommige disktools testen soms slechts een beperkt deel van de schijf.

Backup
Voor backup kunnen oude 3.5" drives die je over hebt worden benut, die kunnen tijdelijk worden aangesloten via USB3. Bijvoorbeeld in een externe behuizing of met behulp van een Sharkoon Quickport.
Wees voorzichtig met hard drives, ze kunnen slecht tegen storen of schokken. Je kunt ze het beste pas aanzetten als ze eenmaal stabiel staan en na gebruik eerst uitschakelen voordat ze worden verplaatst.

Hard drive controllers
Controllerkaarten voor nog meer disks hebben een hoge overhead. Deze controllers zijn niet vaak geoptimaliseerd voor energieverbruik en ze zijn veel minder efficient dan de controller in de Intel chipset. Daarom passen we die niet toe.

Sata kabels
Belangrijk voor de integriteit van de data is de kwaliteit van de SATA kabels. Er zijn controlemechanismen (checksums) in datacommunicatie tussen de computer en de drive, waardoor de drive kan zien of er problemen zijn. Dat is te zien in SMART data onder C7 (199) UDMA CRC Error Rate. Het kan gebeuren bij een slecht geplaatste kabel, verroeste of vervuilde connectoren, een verouderde kabel of een kabel die niet is gemaakt voor SATA 3.0. Een kabel van een goed merk is aan te raden. Ook de satavoedingskabel moet van goede kwaliteit zijn. Het is bekend dat bepaalde 'molded' kabels niet goed bevestigd waren.

Grafische kaart
Losse grafische kaarten zijn niet nodig in een file server, maar ze hebben vaak wel een fors verbruik, zelfs in idle. Als er beeldverwerking nodig is gebruiken we liever de geintegreerde GPU. Die kan in een low power mode worden gezet, dat bespaart veel energie.

Moederbord
Fujitsu (nu Kontron) maakt zeer zuinige moederborden. Ze bieden relatief veel vermogen doordat er desktop processoren in worden toegepast. Zuinige modellen zijn de D364x serie: de D3643-H met 4x SATA aansluitingen, de D3642-B met 6x SATA aansluitingen en de D3644-B met eveneens 6x SATA aansluitingen en ECC ondersteuning. De moederborden zijn ontworpen voor 24x7 gebruik in een relatief warme omgeving.


c't artikel Test: Sparsames Mainboard Fujitsu D3643-H für Intel Core i-8000

Processor
Een file server heeft niet veel processorkracht nodig. Zelfs de allertraagste processor is al snel genoeg. Niettemin is er toch gekozen voor een dual core/4 thread Pentium Gold processor op 3,7GHz. Dat kan omdat deze Coffee Lake processor in idle erg weinig verbruikt.

Als de file server meerdere taken krijgt, bijvoorbeeld encoding, dan komt meer processorkracht van pas. Een i3-9100 heeft 4 cores en meer vermogen. Tijdens het opstarten en in de BIOS draait deze processor voluit en onder belasting kan het verbruik toenemen. Daardoor is zwaardere voeding noodzakelijk. Hetzelfde geldt voor 6-core processoren. Dat valt buiten het bestek van een file server.

Netwerk
Switches en netwerkkaarten hebben net als USB, SATA en PCIe een eigen low power methode. Dat is Energy Efficient Ethernet, zowel de switch als de netwerkchip moeten het ondersteunen voor effect. Het past de hoeveel energie aan de lengte van de kabel. De switch zelf verbruikt ook energie, het is raadzaam daar rekening mee te houden bij aanschaf.

Netwerkchips van Intel hebben een overhead van ~0,5W. Bijvoorbeeld adapters met een I210 of I211 chip. De I219LM on board netwerkchip is ook zuinig. Quad adapters en adapters met oudere chips zullen een hoger verbruik hebben. Zie ook hardware tips in het zuinige server topic.

Voeding
De pricewatch: Mini-box picoPSU 80 + 60W Adapter Power Kit met toebehoren is kosteneffectief. De kit bevat een kwalitatief uitstekende Seasonic 60W HE (high efficiency) adapter. Is 60W wel voldoende? Ja, dat is voldoende in combinatie met een G5400 processor.

De labelcapaciteit van adapters betreft het te leveren vermogen, aan de stekker zal het maximum verbruik hoger liggen.

Bij een quad core i3-9100 processor is het noodzakelijk een andere voeding te kiezen, dan is een PicoPSU-90 met Leicke adapter het meest gebruikt. Een 160W voeding kan 0,3 tot 0,4W aan het verbruik toevoegen.

#CategoryProductPrijsSubtotaal
1Computer accessoiresLeicke ULL Power Supply 120 W€ 31,99€ 31,99
1VoedingenMini-box picoPSU 90€ 39,-€ 39,-
Bekijk collectie
Importeer producten
Totaal€ 70,99

Kast
Kasten hebben niet altijd normale 2.5" en 3.5" bays. De drives kunnen her en der in de kast worden bevestigd, ook verticaal, op de bodem en in andere vreemde posities.

Sommige kasten zijn ontworpen met de verwachting dat 2.5" drives dun zijn, zoals SSD's. Soms worden 2 SSD's op elkaar geplaatst. Dat kan niet bij 2.5" 4 of 5TB drives met een dikte van 15mm. Ga dus tevoren na of een behuizing geschikte bays heeft, bij voorkeur met trays. Youtube reviews kunnen daarbij behulpzaam zijn als de handleiding geen duidelijkheid schept. Trays waarop een 2.5" drive geschroefd kan worden zie je in de afbeelding rechts.

Het meest geschikt zijn towerkasten waar de warmte lucht aan de bovenkant weg kan en verse koele lucht aan de onderzijde kan worden aangetrokken. Dit zorgt voor een schoorsteeneffect of convectie waardoor je idealiter geen ventilatoren nodig hebt. Warme lucht stijgt vanzelf door de natuurwetten. Ventilatoren verbruiken energie, dus dat proberen we zo veel mogelijk te beperken.

Als een systeem niet vaak langdurig zwaar wordt belast kun je passief koelen, d.w.z. geen ventilator op de processorkoeler en geen ventilator in de kast. Als je noodgedwongen wel een ventilator gebruikt, kies er dan een die op laag toerental kan draaien. hardware.info test regelmatig ventilatoren.

Het verbruik
Laten we eens een paar voorbeelden bekijken, exclusief kast.

#CategoryProductPrijsSubtotaal
1ProcessorsIntel Pentium Gold G5400 Boxed€ 57,35€ 57,35
1MoederbordenFujitsu D3642-B€ 135,-€ 135,-
1Geheugen internCrucial CT2K4G4DFS824A€ 30,17€ 30,17
6KabelsAkasa PROSLIM SATA 3.0 50cm€ 4,15€ 24,90
1KabelsMini-box P4 convertercable (for PicoPSU)€ 9,20€ 9,20
2KabelsStartech.com 4x SATA Power Splitter Adapter Cable (PYO4SATA)€ 4,60€ 9,20
6Externe harde schijvenSeagate Backup Plus Portable (STHP) 5TB Zilver€ 100,00€ 600,00
1ProcessorkoelingArctic Alpine 12 Passive€ 10,95€ 10,95
1VoedingenMini-box picoPSU 80 + 60W Adapter Power Kit€ 52,01€ 52,01
1Solid state drivesIntel 660p 512GB€ 74,50€ 74,50
Bekijk collectie
Importeer producten
Totaal€ 1003,27

30TB opslagcapaciteit. Misschien denk je nu: dat zal wel veel energie kosten. Dat valt erg mee: dit systeem verbruikt slechts ~9,1W in idle! Tijdens opstarten verbruiken de drives maximaal 22,5W, daardoor is de 60W voeding voldoende.

Het kan nog lager als de drives in de spindown stand worden gezet. Daardoor is het verbruik nog maar ~5,1W. Dat kun je het beste doen na 15 tot 60 minuten inactiviteit. Daarmee voorkom je dat disks te vaak moeten worden gestart. Dat is slecht voor het verbruik en bij zeer grote aantallen start/stops (denk aan meerdere honderdduizenden) kan de disk voortijdig verslijten.

#CategoryProductPrijsSubtotaal
1ProcessorsIntel Pentium Gold G5400 Boxed€ 57,35€ 57,35
1MoederbordenFujitsu D3643-H€ 98,49€ 98,49
3KabelsAkasa PROSLIM SATA 3.0 50cm€ 4,15€ 12,45
1KabelsMini-box P4 convertercable (for PicoPSU)€ 9,20€ 9,20
1KabelsStartech.com 4x SATA Power Splitter Adapter Cable (PYO4SATA)€ 4,60€ 4,60
3Externe harde schijvenSeagate Backup Plus Portable (STHP) 5TB Zilver€ 100,00€ 300,00
1ProcessorkoelingArctic Alpine 12 Passive€ 10,95€ 10,95
1VoedingenMini-box picoPSU 80 + 60W Adapter Power Kit€ 52,01€ 52,01
1Solid state drivesIntel 660p 512GB€ 74,50€ 74,50
Bekijk collectie
Importeer producten
Totaal€ 649,72

Dit 4x SATA systeem uitgerust met 15TB opslagruimte zal ~7,4W verbruiken in idle. Als de drives stil worden gezet daalt dat naar ~4,5W.

Verkrijgbaarheid
Fujitsu moederborden raken regelmatig uitverkocht. Ze worden geproduceerd op bestelling en ze zijn bedoeld voor bedrijven die ze in grotere aantallen kopen voor inbouw doeleinden. Het zijn long lifecycle boards, wat wil zeggen dat de fabrikant aangeeft dat ze nog jarenlang beschikbaar blijven. Als er maar een aanbieder is, wacht dan tot ze daadwerkelijk beschikbaar zijn, anders is de kans groot dat je teveel betaalt.

Voor een goede prijs bij de externe disk drives moet je de prijsbewegingen in de gaten houden van een flink aantal modellen. Er zijn diverse externe drives waarin dezelfde SATA drives zitten.

Alternatieven
Als je via een apparaat (smartphone, tablet of laptop) op afstand een speciaal pakketje stuurt kan een NAS in slaapstand uit de slaapstand worden gehaald. Deze methode heet Wake-on-LAN (WoL). Zodoende kun je energie besparen ook al draait je systeem 7200 rpm 3.5" drives.

Misschien heb je helemaal geen file server nodig. Bijvoorbeeld als je maar 1 client (werkstation) hebt. Toegang tot opslag op een server wordt altijd vertraagd door het netwerk. Of als je de opslag alleen gebruik voor films en dergelijke; het kan goedkoper zijn abonnementen op streaming diensten te kiezen.

Optimalisatie
Het moederbord is standaard al ingesteld op optimaal laag verbruik.

Onder Linux kan met powertop --auto-tune het verbruik worden geoptimaliseerd. Dit kun je eens per 12 uur doen herhalen en tijdens het opstarten van het systeem door het in te stellen als een service. Drivers komen met het besturingssysteem.

Onder Windows is optimalisatie afhankelijk van het installeren van Intel drivers, die kun je downloaden vanaf de Intel website. Drivers stellen een zuinig besturingssysteem in staat een onderdeel in low power stand te zetten - ook als ze uit zijn geschakeld, maar niet alle drivers zijn nodig of zuiniger. Benodigd: chipset inf Coffee Lake, 610 graphics, USB3 drivers (via de installer), LM219 LAN, Intel RST, Realtek audio, geen IME drivers, geen Fuj0430 device driver. De wijze van installatie is handmatig, zie de methode beschreven hieronder. Daardoor worden allerlei onnodige monitoring tools niet geinstalleerd.

Locatie Intel drivers: Intel web site.
Locatie Fujitsu drivers: ftp://ftp.kontron.com/Pro...inMini-ITX/Drivers_D36xx/

Zet tevoren het automatisch installeren van driver updates uit. Windows kan anders zo maar een driver weer vervangen zonder het aan te kondigen.
Voor een zo schoon mogelijke installatie is het van belang om zelf aan te geven waar de drivers staan en handmatig een selectie te maken van de driver. Daardoor wordt er geen overbodige software meegeïnstalleerd.

Methode:
Download de laatste drivers vanaf de Intel website: USB drivers, Video drivers, inf bestanden chipset
Gebruik 7-Zip om drivers uit te pakken op disk.
Control panel, System, device manager.
Update driver software
Browse my computer for driver software
Let me pick from a list of device drivers on my computer
Show all devices
Have disk
Browse
Selecteer de directrory waat de driver (met inf bestanden) uitgepakt staat.

Maak je eigen custom power plan:
Windows Settings, Power & Sleep, Additional Power Settings, Change Advanced Power Settings
Internet Explorer/Javascript Timer Frequency: Maximum power savings
Desktop Background Settings/Slide Show: Paused
Sleep/Sleep after: never
USB Settings/USB selective suspend settings: Enabled
Intel(R) Graphics Settings/Intel Graphics Power Plan: Maximum Battery Life
PCI Express/Link State Power Management: Maximum Power Savings
Processor Power Management:
-Minimum Processor State: 1%
-System Cooling policy: passive
-Maximum Processor State: 100%
Display/Turn off display: 5 minutes
Enable Adaptive Brightness: off

Met W10Privacy kun je zorgen dat achtergrond datacollectie wordt geminimaliseerd. Dat zijn nogal wat taken en die hebben ook invloed op het verbruik.



Zet verder ongebruikte en onnodige services uit zoals Windows Search, SQL Server, IIS, etc.

Windows heeft veel verborgen scheduled tasks (Task Scheduler). Veel daarvan kunnen ook uit. Een aantal van de speeltuin functies (zoals speech recognition), bewegende screensavers en "apps" ook.

Met msconfig of een tool zoals CCleaner kun je allerlei automatisch startende processen uitschakelen en ervoor zorgen dat explorer geen onnodige extra DLL's laadt.

Als je klaar bent kun je powercfg /energy draaien, soms zie dan iets dat je bent vergeten. Niet alles wat deze tool als "error" aangeeft is iets wat hersteld moet worden.

Meer over optimalisatie.

Meten is weten
Een energiemeter is belangrijk bij het onderwerp energiebesparing. Een goedkope energiemeter is de Brennenstuhl Primera-Line PM231E (€ 19). Meer informatie en andere meters zijn te vinden in het zuinige server topic en het Energiemeters topic.
Tweakers hebben al veel metingen gedaan, maar het blijft van belang tijdens de inrichting het effect te zien van bepaalde software op het verbruik. Een normale file server voegt nauwelijks verbruik toe, maar het draaien van bepaalde software kan het verbruik laten stijgen.



Vragen
Vragen over zuinige servers kun je stellen in het zuinige server topic. Onder de gepinde posts tref je diverse systemen aan die de hierboven genoemde verbruikscijfers ondersteunen.



Idle verbruik per TB

Voor de boekhouders of quants onder ons: laten we eens een aantal disks vergelijken:
modelgroottemax. verbruikidle verbruikspindown verbruikidle verbruik per TB
Seagate ST4000LM0244TB3,75W0,85W0,18W0,21W/TB
Seagate ST5000LM0005TB3,75W0,85W0,18W0,17W/TB
WD40EFAX4TB21,0W3,0W0,4W0,75W/TB
WD120EFAX12TB22,1W2,9W0,6W0,24W/TB
WD140EFFX14TB23,2W3,0W0,8W0,21W/TB
WD120EMFZ (WD DC HC530)12TB18,4W5,5W1,5W0,46W/TB

2.5" drives hebben veruit het beste verbruik per drive bij gelijkblijvende grootte. 4 en 5TB zijn de grootst verkrijgbare 2.5" disks.

Een vergelijking van grote opslagcapaciteit met behulp van kleinere en grote disks:
aantaltotaalmodelgroottemax. verbruikidle verbruikspindown verbruikidle verbruik per TB
624TBSeagate ST4000LM0244TB22,5W5,1W1,08W0,21W/TB
630TBSeagate ST5000LM0005TB22,5W5,1W1,08W0,17W/TB
624TBWD40EFAX4TB126,2W18,2W2,8W0,77W/TB
224TBWD120EFAX12TB44,2W5,8W1,2W0,24W/TB
228TBWD140EFFX14TB46,4W6,0W1,6W0,21W/TB
224TBWD120EMFZ (WD DC HC530)12TB36.8W11W3W0,46W/TB

Voor systemen tot 30TB opslagruimte geven 2.5" disks de mogelijkheid om het laagste verbruik te realiseren.

Als je meer dan 30TB opslag nodig hebt, dan heb je geen andere keuze dan 3.5" disks. Dit gaat wel gepaard met een flink hoger idle en startup verbruik. Soms zodanig hoog dat een benodigde grotere voeding minder tot veel minder zuinig zal zijn bij lage belasting.

Let op het maximum verbruik tijdens opstarten, dat is van belang bij het kiezen van een voeding.

De grote 3.5" drives zijn tamelijk prijzig. Ze zijn niet beschikbaar als externe drives. Mensen die de drives open hebben gemaakt (shucked) hebben daarin diverse white label SATA drives aangetroffen. De 16TB externe drive bevatte bijvoorbeeld 2x SATA 8TB drives, de 14TB bevatte een SATA een white label HGST Ultrastar en de 12TB bevatte een white label WD120EMAZ of een white label WD120EMFZ. De white label drives kunnen HGST drives zijn. Die zijn niet zo zuinig als de meeste WD Red drives.

Hier geen discussies over RAID of CMR/SMR s.v.p.

Windows 7: replacing a MBR disk with a GPT disk en

By mrmrmr on Saturday 16 April 2016 17:38 - Comments (7)
Category: Operating systems, Views: 6.642

Recently, my Windows 7 x64 system needed a new hard disk. I suspected that the existing hard disk was the reason for undefined freezes. I bought a new 4 TB disk to move from the old unreliable 2 TB disk.

You'd think that cloning the disk would not be a problem, there are many tools around that help clone disks. Some disk drive vendors provide them for free. Some even work with disks from a different brand as long as at least one recognized brand disk is present in the system. There are free tools available too.

However, there are a few serious problems. The first problem is that the current disk uses a MBR (Master Boot Record) and the new hard disk has to use GPT (GUID Partition Table) to make available the full 4 TB. MBR is limited to about 2.2 TB in Windows.

The second problem is that many disk clone tools do not work if the disk was partitioned with separate volumes for boot, system and user profiles and disk letters get mixed up terribly. Cloned drives often did not even boot properly. Normally, a standard Windows install is a C: drive containing all of the operating system, but using autounattend.xml on the setup USB stick will allow separation on different volumes. We'll discuss that later.

The system has C: as a boot disk, D: as the Windows disk, E: as the user profiles disk and F: as a data disk. This article describes how to handle this specific case. Your system may have a different layout of split installation, requiring some adjustments.

It may work for single C: drive installs too, but there will likely be some unneeded steps, such as collecting partition and volume layout information and changing the registry.

1. UEFI
Make sure the motherboard is using UEFI. Sometimes this is difficult to verify. The AMI BIOS my system uses isn't too clear about it and manuals may not mention it at all. UEFI is necessary to enable support for GPT disks.

2. Create a UEFI USB flash disk
Rufus can create a bootable USB disk from an ISO or IMG of Windows 7. It needs to be the x64 version of Windows 7, the 32 bit version does not support GPT. Select the GPT partition scheme for UEFI. This will partition the USB disk in GPT format. This persuades Windows Setup to support GPT disks.

http://static.tweakers.net/ext/f/CAgqQNzQzCkZWSLc1IARx3HM/full.png

Create another USB Flash disk with CloneZilla Live on it. We'll need it later. It doesn't need to have GPT partitioning.

3. Connect the new disk and boot from the Windows installation USB stick
Disconnect all existing disks and connect the new disk to the system. Boot from the Windows installation USB disk.

4. Get a command prompt and partition the new disk
As soon as a GUI window appears, press Shift-F10. This opens a command prompt window. Start the diskpart partitioning tool.

diskpart
select disk 0
list partition


No partitions should be present. If you are sure you are editing the new unused disk, enter the following commands:

clean
convert gpt
list disk


  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
* Disk 0    Online         3726 GB  3726 GB        *

The asterisk at the end shows that the disk is initialized as a GPT disk.

exit

5. autounattend.xml
Windows Setup can run in automated mode. One of the ways to do this is to create an autounattend.xml file.
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>en-US</UILanguage>
            </SetupUILanguage>
            <InputLocale>en-US</InputLocale>
            <SystemLocale>en-US</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UserLocale>en-US</UserLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <ImageInstall>
                <OSImage>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>5</PartitionID>
                    </InstallTo>
                    <InstallToAvailablePartition>false</InstallToAvailablePartition>
                    <WillShowUI>OnError</WillShowUI>
                </OSImage>
            </ImageInstall>
            <UserData>
                <ProductKey>
                    <Key>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</Key>
                    <WillShowUI>OnError</WillShowUI>
                </ProductKey>
                <AcceptEula>true</AcceptEula>
                <FullName>Name</FullName>
            </UserData>
            <DiskConfiguration>
                <WillShowUI>OnError</WillShowUI>
                <Disk>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                    <CreatePartitions>
                        <!-- EFI system partition (ESP) -->
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Type>EFI</Type>
                            <Size>260</Size>
                        </CreatePartition>
                        <!-- WinRE recovery tools partition -->
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Type>Primary</Type>
                            <Size>300</Size>
                        </CreatePartition>
                        <!-- Microsoft reserved partition (MSR) -->
                        <CreatePartition wcm:action="add">
                            <Order>3</Order>
                            <Type>MSR</Type>
                            <Size>128</Size>
                        </CreatePartition>
                        <!-- C old boot disk -->
                        <CreatePartition wcm:action="add">
                            <Order>4</Order>
                            <Type>Primary</Type>
                            <Size>300</Size>
                        </CreatePartition>
                        <!-- D Windows -->
                        <CreatePartition wcm:action="add">
                            <Order>5</Order>
                            <Type>Primary</Type>
                            <Size>100000</Size>
                        </CreatePartition>
                        <!-- E User Profiles -->
                        <CreatePartition wcm:action="add">
                            <Order>6</Order>
                            <Type>Primary</Type>
                            <Size>100000</Size>
                        </CreatePartition>
                        <!-- F Data -->
                        <CreatePartition wcm:action="add">
                            <Order>7</Order>
                            <Type>Primary</Type>
                            <Extend>true</Extend>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <!-- EFI system partition (ESP) -->
                        <ModifyPartition wcm:action="add">
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                            <Format>FAT32</Format>
                            <Label>System</Label>
                        </ModifyPartition>
                        <!-- WinRE recovery tools partition -->
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                            <Format>NTFS</Format>
                            <Label>WinRE</Label>
                            <TypeID>de94bba4-06d1-4d40-a16a-bfd50179d6ac</TypeID>
                        </ModifyPartition>
                        <!-- Microsoft reserved partition (MSR): do nothing -->
                        <ModifyPartition wcm:action="add">
                            <Order>3</Order>
                            <PartitionID>3</PartitionID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>4</Order>
                            <PartitionID>4</PartitionID>
                            <Format>NTFS</Format>
                            <Label>C</Label>
                            <Letter>C</Letter>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>5</Order>
                            <PartitionID>5</PartitionID>
                            <Format>NTFS</Format>
                            <Label>D</Label>
                            <Letter>D</Letter>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>6</Order>
                            <PartitionID>6</PartitionID>
                            <Format>NTFS</Format>
                            <Label>E</Label>
                            <Letter>E</Letter>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>7</Order>
                            <PartitionID>7</PartitionID>
                            <Format>NTFS</Format>
                            <Label>F</Label>
                            <Letter>F</Letter>
                        </ModifyPartition>
                    </ModifyPartitions>
                </Disk>
            </DiskConfiguration>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Reseal>
                <Mode>OOBE</Mode>
            </Reseal>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <NetworkLocation>Other</NetworkLocation>
                <ProtectYourPC>3</ProtectYourPC>
            </OOBE>
            <FolderLocations>
                <ProfilesDirectory>E:\Profiles</ProfilesDirectory>
            </FolderLocations>
        </component>
        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>en-US</InputLocale>
            <SystemLocale>en-US</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UserLocale>en-US</UserLocale>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:c:/win/install.wim#Windows 7 PROFESSIONAL" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

This autounattend.xml file creates a EFI partition, a recovery partition and a ESR partition. The EFI partition is used to boot the disk. The ESR partition is hidden. Four drives are created: C:, D:, E: and F:. This matches the drive letters on the old disk. The volume sizes can be adjusted as needed. On the old disk, the C: drive was used as the boot disk, D: contained Windows and E: contained user profiles. F: is the data volume. The new disk will have the same drive letters, this prevents broken links.

Replace the key in the ProductKey section with your own key and save the file as "autounattend.xml".

The autounattend.xml file should be copied to the root of the USB setup disk. Windows Setup will find it there.

Next, we'll need to install Windows. This creates the proper disk layout we need later to copy our old data into.

6. Boot from the Windows USB disk
Enter the BIOS or boot menu and make sure that the USB disk shows up as UEFI, select the UEFI USB disk as the boot disk.

Windows will start setting itself up when the Windows 7 USB disk is booted. The disk is partitioned, volumes are created and Windows is installed. Nearly everything is automated.

When everything is done, it will be possible to login to the newly installed Windows. Insert the USB key and rename the autounattend.xml to autounattend.xml.renamed.

7. Export DosDevices key from the registry
Another boot from the USB disk is needed. This time we need to export drive letter data from the registry of the Windows Setup environment. Use Shift-F10 when you see a Windows screen. From the command prompt diskpart can be used to verify the existing drive letters.

diskpart
select disk 0
list partition
list volume


Save the output of these screens to the USB disk for later reference.

If the volumes listed include C, D, E and F with expected sizes, we can export this key from the registry: HKEY_LOCAL_MACHINE/SYSTEM/MountedDevices

\DosDevices\C:
\DosDevices\D:
\DosDevices\E:
\DosDevices\F:


Save the file as driveletters.reg. Press Shift-F10 and start notepad from the command line, edit the reg file and remove drive letters G: and higher, then save the file.

8. Copying old data to new volumes
There are several ways the old data can be copied. A requirement for any method is proper handling of hidden and system files and links. We'll use CloneZilla to copy the content from the old disk to the new disk. CloneZilla does not try to change things that shouldn't be changed. That's exactly what we need.

9. Power down and connect the old disk
We need to gather some information about the partitions and volumes. Connect the old disk and disconnect the new disk. Let Windows boot from the old disk. The old disk has several primary partitions, one extended partition and logical partitions. Type Disk Management in the search box of the Start menu. We need to make sure that each volume has its own unique name (Properties, General tab), we'll use disk letters as volume labels. The C: volume has 'C' as its label, etc.

To get detailed data, use diskpart from the command line.

diskpart
select disk 0
list partition
list volume


Save the output of commands to the USB disk for later reference. For convenience, print the data.

10. CloneZilla
Power down and connect both the old and new disks. Insert the USB disk containing CloneZilla Live and boot from it. After entering some configuration settings, select mode device-device, select Expert mode, select part_to_local_part. Then choose the source and target partitions. Double check and make sure the right partitions are selected, it would be most unfortunate to copy the new disk partitions to the old disk!

The parameters to use are: -e1 auto -e2 -r -m -v

Copy each of the old partitions to the corresponding partitions on the new disk. The drive letters are useful to identify the right partition.

11. Hive loading and registry editing
When copying is ready, disconnect the old drive. Boot again from the USB disk and press Shift-F10.
First, create a backup of the original D:\Windows\System32\Config\system registry hive file. Next, start regedit from the command line. Navigate to this location in regedit:
HKEY_LOCAL_MACHINE.
In the pull-down menu, select File, Load Hive... D:\Windows\System32\Config\system. Load this hive into key name: systemhive.

Open notepad and edit driveletters.reg. Replace HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices with
HKEY_LOCAL_MACHINE\systemhive\MountedDevices. Save the file to driveletters2.reg. From the command line, import the settings by typing driveletters2.reg and hitting the enter key. If it worked, you can check the result under the systemhive key name. Next, unload the hive. This saves the changes to the D: drive.

12. Finishing & notes
To check if everything works, boot from the newly created hard disk. You may see chkdsk verifying the disks, let it do its job. After this is finished, Windows should boot as before.

If it seems to take ages before Windows shows a login screen or if it takes a long time before the start menu is shown, press Ctrl-Alt-Del and start the Task Manager. If you start a command prompt (cmd), you'll probably see that the volumes are not using the drive letters they should be using. In that case, go back and perform the procedure again.

You may see this error message if the drive letters are mixed up:
The user Profile Services failed to logon. User Profile cannot be loaded.
Drive letters are mixed up after booting to the new disk.

During installing Windows on the new disk drive, you may see this error message:
Windows cannot be installed to this disk. The selected disk is not of the GPT partition style.
The USB disk has not booted in UEFI mode, or Windows did not recognize a UEFI booted USB disk.

Windows Setup uses that to decide if GPT is supported, and it is picky: booting as an UEFI USB disk was not enough. The USB disk was specifically formatted as FAT32 with GPT layout and it was booted from the boot menu as a UEFI USB disk.
The type of BIOS may be of influence too. My system has an AMI BIOS which does not have a clear EFI enabling setting. This BIOS does not show hard disks as UEFI disk unless it is a GPT disk.