autoNAS / CHANGELOG.md
Newer Older
9443424 3 months ago History
565 lines | 27.109kb
Bogdan Timofte authored 3 months ago
1
# AutoNAS - Change Log
2

            
Bogdan Timofte authored 3 months ago
3
## [v3.1.1] - 2026-03-07
4

            
5
### Fixed
6
- kept `autonas.service` and `autonas-boot-scan.service` ordered before `remote-fs.target` and `umount.target` so local AutoNAS exports remain available long enough for Proxmox NFS client mounts to unmount during shutdown
7
- reduced reboot delay observed on `ebony` when `AutoNAS-1` is exported locally and also mounted back as a Proxmox NFS storage
8

            
9
### Notes
10
- this does not remove all self-hosted NFS edge cases; it only prevents the provider side from stopping before the client-side unmount phase finishes
11
- PBS availability loss during `pgs suspend` on `ebony` remains expected while VM `301 is-anjohibe` is intentionally suspended
12

            
13

            
Bogdan Timofte authored 3 months ago
14
## [v3.0.1] - 2026-03-02
15

            
16
### 🔧 CLI Simplification
17

            
18
#### Removed Redundant Disk Commands
19
- **Removed** `autonas mount` and `autonas unmount/umount` from user-facing CLI
20
- **Standardized disk operations** on `autonas attach` and `autonas detach`
21
- **Updated help output and documentation** to reflect the simplified command set
22

            
23
#### Why This Change
24
- Reduced command redundancy and ambiguity between attach/detach vs mount/unmount
25
- Clearer operational model for both manual and automated workflows
26

            
Bogdan Timofte authored 3 months ago
27
## [v3.0.0] - 2025-08-15 🚀
28

            
29
### 🎉 **CLEAN USER INTERFACE & SCRIPT ORGANIZATION**
30

            
31
#### 🔧 Complete Script Architecture Refactoring
32
- **Single User Command**: Only `autonas` visible in shell autocomplete
33
- **Internal Script Organization**: All utility scripts moved to `/usr/local/lib/autonas/`
34
- **47% Code Reduction**: ~2,300 lines eliminated through deduplication
35
- **Single Source of Truth**: All shared functions in `autonas-core.sh` library
36

            
37
#### 📁 New Script Architecture
38
```
39
/usr/local/bin/
40
├── autonas -> autonas.sh          # Only user-visible command
41
├── autonas.sh                     # Main CLI interface (1,208 lines)
42
└── autonas-core.sh                # Core business logic library (1,044 lines)
43

            
44
/usr/local/lib/autonas/            # Internal scripts (hidden from autocomplete)
45
├── autonas-boot-scan.sh           # Boot scanner
46
├── autonas-disk-handler.sh        # Disk event handler
47
├── autonas-media-importer.sh      # Media importer
48
├── autonas-network-handler.sh     # Network handler
49
├── autonas-udev-wrapper.sh        # Udev wrapper
50
└── autonas-uninstall.sh           # System uninstaller
51
```
52

            
53
#### 🎯 Clean User Experience
54
- **Professional Interface**: Only `autonas` command appears in tab completion
55
- **Unified Functionality**: All operations through single command interface
56
- **Organized Backend**: All system utilities properly categorized and hidden
57
- **Zero Code Duplication**: Complete elimination of duplicate functions
58

            
59
#### 🔄 Revolutionary Background Import Architecture (Preserved)
60
- **Service-Based Import System**: Complete separation of mount/import through systemd services
61
- **Unlimited Import Duration**: No more systemd timeout constraints (tested with 300+ files)
62
- **Production Scalability**: Architecture tested and validated in production environment
63

            
64
#### �️ **Complete System Integration Updates**
65
- **All Service Files**: Updated systemd services with new script paths
66
- **All udev Rules**: Updated with `/usr/local/lib/autonas/` paths
67
- **All Configuration References**: Updated throughout entire system
68
- **Deploy Script**: Enhanced with directory creation and proper installation
69
- **Install/Uninstall**: Complete support for new architecture
70

            
71
#### 🔧 **Technical Architecture Improvements**
72
- **Core Library Pattern**: `autonas-core.sh` with all shared business logic
73
- **Clean Separation**: User interface vs. system utilities properly organized
74
- **Professional Deployment**: Only essential commands visible to users
75
- **Backward Compatibility**: Seamless upgrade path from previous versions
76

            
77
#### 📊 **Production Test Results** (Background Import)
78
- **✅ 302 files imported** successfully in single session (36 minutes)
79
- **✅ 100% success rate** with zero errors
80
- **✅ Perfect UTC conversion** for all QuickTime/EXIF timestamps
81
- **✅ Complete workflow** mount → background import → auto unmount
82
- **✅ Robust error handling** and disconnect detection
83

            
84
#### 🚨 **Architecture Changes**
85
- **Script Locations**: Internal scripts moved from `/usr/local/bin/` to `/usr/local/lib/autonas/`
86
- **User Interface**: Single `autonas` command replaces multiple visible scripts
87
- **Configuration Updates**: All references updated throughout system
88
- **Clean Autocomplete**: Professional user experience with hidden utilities
89

            
90
---
91

            
92
## [v2.5.0] - 2024-08-12
93

            
94
### 🚀 Dual Configuration System
95

            
96
#### Enhanced Mounting Options
97
- **Dual Configuration Support**: Complete system supporting both NFS shares and simple local mounts
98
  - **NFS share complet**: Cu IP și export pentru acces de rețea
99
  - **Montare locală simplă**: Doar mount point, fără IP și NFS (NOUĂ!)
100
- **LOCAL Configuration Format**: New `UUID:NAME:LOCAL:LOCAL:MOUNT_POINT:LOCAL` format
101
- **Interactive Configuration Selection**: Enhanced `autonas-config.sh add` with mount type selection
102
- **Mixed Environment Support**: Both NFS and LOCAL configurations can coexist seamlessly
103

            
104
#### Core System Improvements
105
- **Extended UUID Support**: Support for both standard UUIDs and FAT32 short UUIDs (e.g., `8765-4321`)
106
- **Enhanced Manager Integration**: Complete autonas-manager.sh support for LOCAL configurations
107
- **Clean Logging**: LOCAL configurations show "Skipping X for local mount configuration" instead of errors
108
- **Synchronized Disk Display**: Fixed desynchronization between disk display and mapping logic
109

            
110
#### Bug Fixes Resolved
111
- **Disk Selection Mapping Bug**: Fixed issue where selecting disk 6 would map to wrong UUID
112
- **LOG Spam Resolution**: Eliminated infinite "Waiting for interface LOCAL" loops
113
- **UUID Regex Enhancement**: Updated regex pattern to handle FAT32 short UUIDs properly
114
- **Manager Function Updates**: All network-related functions now properly detect and skip LOCAL configurations
115

            
116
#### Technical Implementation
117
```bash
118
# NFS Configuration (existing)
119
UUID:NAME:IP:INTERFACE:MOUNT_POINT:NFS_OPTIONS
120

            
121
# LOCAL Configuration (new)
122
UUID:NAME:LOCAL:LOCAL:MOUNT_POINT:LOCAL
123
```
124

            
125
#### Manager Function Enhancements
126
- **`activate_ip()`**: Skips IP activation for LOCAL configurations
127
- **`deactivate_ip()`**: Skips IP deactivation for LOCAL configurations
128
- **`add_nfs_export()`**: Skips NFS export for LOCAL configurations
129
- **`remove_nfs_export()`**: Skips NFS export removal for LOCAL configurations
130

            
131
#### Use Cases for LOCAL Configurations
132
- **Simple local storage**: Diskuri pentru backup-uri locale fără acces de rețea
133
- **Scratch space**: Space temporar pentru procesare locală de date
134
- **Development storage**: Storage local pentru cache-uri și fișiere temporare
135
- **Archive storage**: Archive locale care nu necesită export NFS
136
- **Mixed environments**: Combinație de storage local și shares de rețea
137

            
138
#### Configuration Examples
139
```properties
140
# NFS Shares (network access)
141
920fe1b7-4091-4d6a-bab8-2f48d8d704bc:shared-docs:192.168.1.100:eth0:/mnt/autonas/shared-docs:*(rw,all_squash,insecure,async,no_subtree_check,anonuid=0,anongid=0)
142

            
143
# LOCAL Mounts (local only)
144
8765-4321:local-backup:LOCAL:LOCAL:/mnt/autonas/local-backup:LOCAL
145
abcd-1234:scratch-space:LOCAL:LOCAL:/mnt/autonas/scratch-space:LOCAL
146
```
147

            
148
#### Backward Compatibility
149
- **Full compatibility**: Existing NFS configurations continue to work unchanged
150
- **No migration required**: Current setups work without any changes
151
- **Enhanced functionality**: New LOCAL options available alongside existing NFS features
152

            
153
## [v2.4.0] - 2025-08-11
154

            
155
### 🌐 Interface Stability Management System
156

            
157
#### Problema Rezolvată
158
- **USB/Thunderbolt interfaces instabile**: Interfețele USB și Thunderbolt dispar și revin periodic
159
- **IP-uri pierdute**: IP-urile configurate pentru diskuri nu se readaugă automat când interfața revine
160
- **NFS exports indisponibile**: Export-urile devin temporar inaccesibile din cauza IP-urilor lipsă
161

            
162
#### Interface Management Tools
163
- **autonas-interface-handler.sh**: Handler principal pentru evenimente udev de interfețe
164
- **Event-driven only**: Arhitectură complet bazată pe evenimente (fără daemon/servicii permanente)
165
- **Emergency diagnostics**: Tool-uri de diagnostic pentru depanare în cazuri extreme
166

            
167
#### Interface Handler System
168
- **autonas-interface-handler.sh**: Handler principal pentru evenimente udev de interfețe
169
- **Event-driven architecture**: Răspuns instant la schimbările interfețelor (nu polling)
170
- **Multiple event types**: Detectează add/remove/change/carrier/operstate events
171
- **Focus USB/Thunderbolt**: Tratament special pentru interfețele instabile
172
- **Smart restoration**: Verifică starea interfețelor înainte de configurare IP
173
- **Background processing**: Execuție asincronă pentru a evita timeout-urile udev
174
- **Retry mechanism**: Logică de retry pentru configurarea IP-urilor pe interfețe instabile
175

            
176
#### Advanced IP Management
177
- **Interface existence checking**: Verificare inteligentă dacă interfața există înainte de configurare
178
- **IP conflict resolution**: Detectează și evită conflictele de IP-uri
179
- **Retry mechanism**: Logic de retry pentru configurarea IP-urilor pe interfețe instabile
180
- **Shared IP management**: Gestionarea corectă a IP-urilor folosite de multiple diskuri
181
- **Wait for interface**: Așteaptă ca interfețele USB/Thunderbolt să apară (până la 30 secunde)
182

            
183
#### Comprehensive Debug Tools
184
- **autonas-interface-debug.sh**: Tool complet de diagnostic pentru probleme interfețe
185
- **Status analysis**: Analiză detaliată a statusului interfețelor și IP-urilor configurate
186
- **Real-time monitoring**: Monitorizare în timp real a schimbărilor de interfețe
187
- **Configuration validation**: Verificare configurații AutoNAS vs. starea actuală
188
- **Troubleshooting guide**: Sugestii automate pentru rezolvarea problemelor
189
- **Color-coded output**: Interface prietenoasă cu coding color pentru status
190

            
191
#### Enhanced udev Rules
192
- **98-autonas-interfaces.rules**: Reguli udev comprehensive pentru interfețe de rețea
193
- **Event-driven primary mechanism**: Detectare principală prin evenimente, nu polling
194
- **Multiple trigger types**: add/remove/change/operstate/carrier events
195
- **USB/Thunderbolt specific**: Tratament special pentru interfețele instabile
196
- **State change monitoring**: Monitorizează schimbările de stare operațională și carrier
197
- **Instant response**: Răspuns în 2-3 secunde la schimbările interfețelor
198

            
199
#### Management Commands
200
```bash
201
# Debug interfețe și IP-uri
202
autonas-interface-debug.sh check
203

            
204
# Monitorizare timp real schimbări
205
autonas-interface-debug.sh realtime
206

            
207
# Test stabilitate interfețe USB/Thunderbolt
208
autonas-test-interface-stability.sh
209
```
210

            
211
#### Installation & Service Integration
212
- **Automatic installation**: Toate componentele sunt instalate automat de `install.sh`
213
- **Service auto-start**: Serviciul de monitorizare pornește automat la instalare
214
- **Initial restore**: Restaurare automată a IP-urilor la finalul instalării
215
- **Proper dependencies**: Dependențe corecte cu serviciile de rețea și NFS
216

            
217
### 🔧 Îmbunătățiri Core Manager
218

            
219
#### Smart IP Configuration
220
- **Interface existence validation**: Verifică dacă interfața există înainte de configurare
221
- **Wait for interface**: Logică de așteptare pentru interfețele care apar cu întârziere
222
- **Retry mechanism**: Până la 3 încercări pentru configurarea IP-urilor
223
- **Conflict detection**: Evită adăugarea IP-urilor deja configurate
224

            
225
#### Enhanced Error Handling
226
- **Detailed error reporting**: Mesaje de eroare mai descriptive
227
- **Recovery suggestions**: Sugestii pentru rezolvarea problemelor
228
- **Graceful degradation**: Continuă operațiunea chiar dacă unele componente eșuează
229

            
230
### 📚 Documentație Extinsă
231

            
232
#### New Troubleshooting Section
233
- **USB/Thunderbolt specific issues**: Secțiune dedicată pentru problemele interfețelor instabile
234
- **Debug commands**: Liste complete de comenzi pentru diagnosticare
235
- **Step-by-step solutions**: Soluții pas cu pas pentru probleme comune
236
- **Power management tips**: Sugestii pentru managementul power al USB
237

            
238
#### Updated Architecture Documentation
239
- **Interface monitoring flow**: Documentare completă a fluxului de monitorizare
240
- **Service interactions**: Interacțiunile între servicii și dependențele lor
241
- **Debug methodology**: Metodologie pentru diagnosticarea problemelor
242

            
243
### 🎯 Use Cases Noi
244

            
245
#### Unstable Interface Environments
246
- **USB docking stations**: Stații de andocare USB care se deconectează periodic
247
- **Thunderbolt hubs**: Hub-uri Thunderbolt cu conectivitate intermitentă
248
- **USB-C multiport adapters**: Adaptoare multiport cu stabilitate variabilă
249
- **Laptop docking scenarios**: Scenarii de laptop care se conectează/deconectează des
250

            
251
#### Enterprise Environment
252
- **Multiple identical setups**: Deploy pe multiple servere cu aceleași probleme interfețe
253
- **Centralized monitoring**: Monitorizare centralizată a stabilității interfețelor
254
- **Automated recovery**: Recuperare automată fără intervenție manuală
255

            
256
## [v2.3.0] - 2025-07-22
257

            
258
### 🚀 Boot Recovery System
259

            
260
#### Boot Scan Service
261
- **Automatic boot detection**: New `autonas-boot-scan.service` detects and mounts configured disks at system boot
262
- **Pre-connected disk support**: Handles disks that were already attached before system start
263
- **Intelligent scanning**: Checks all configured UUIDs from `/etc/pve/autonas/disks.conf`
264
- **Mount status detection**: Identifies disks already mounted elsewhere and handles appropriately
265

            
266
#### Boot Scanner Script
267
- **autonas-boot-scan.sh**: Comprehensive boot-time disk scanner
268
- **UUID existence verification**: Checks if configured disk UUIDs are present as devices
269
- **Mount state analysis**: Determines if disks are unmounted, mounted elsewhere, or correctly mounted
270
- **Automatic attachment**: Uses `autonas-manager.sh` to properly mount and configure detected disks
271
- **Detailed reporting**: Statistics on total, processed, already-mounted, and newly-attached disks
272

            
273
#### System Integration
274
- **Service dependencies**: Proper ordering after filesystem, udev-settle, network, and NFS services
275
- **Installation automation**: Added to install/uninstall scripts with proper enable/disable
276
- **Documentation updates**: Complete documentation of new boot recovery architecture
277
- **RemainAfterExit=yes**: Service stays active to indicate successful boot scan completion
278

            
279
#### Main Service Integration
280
- **autonas.service**: New main AutoNAS service for centralized system management
281
- **Enhanced reload functionality**: Comprehensive reload of udev rules, NFS exports, and systemd daemon
282
- **Service orchestration**: Proper dependencies and integration with boot-scan service
283
- **Centralized control**: Single point of management for the entire AutoNAS system
284

            
285
#### Orphan File Prevention System
286
- **Pre-installation cleanup**: Automatic cleanup of previous installations before reinstalling
287
- **Uninstaller integration**: Install script now installs uninstaller for future clean upgrades
288
- **Deploy script uninstall**: New `./deploy.sh uninstall` command for remote uninstallation
289
- **Force mode uninstaller**: Silent cleanup mode with `--force` flag for automated use
290
- **Evolution protection**: Prevents orphan files during project evolution and upgrades
291

            
292
#### Problem Resolution
293
- **Solves reboot issue**: Addresses problem where pre-connected disks weren't exported after system restart
294
- **udev gap coverage**: Handles scenario where udev doesn't re-trigger events for existing devices
295
- **NFS export recovery**: Ensures all configured disks are properly exported after boot
296
- **Robust boot process**: System now handles both hot-plug and pre-connected disk scenarios
297

            
298
## [v2.2.0] - 2025-07-22
299

            
300
### 🚀 Remote Deployment System
301

            
302
#### Deploy Script Added
303
- **Remote deployment support**: New `deploy.sh` script for automated installation on multiple targets
304
- **Multi-target management**: Support for servers 192.168.2.91, 192.168.2.92, 192.168.2.93
305
- **SSH-based automation**: Uses SSH keys for seamless remote operations
306
- **Intelligent connectivity checks**: Host availability verification before operations
307

            
308
#### Enhanced Reliability
309
- **Host status verification**: Ping test before attempting SSH connections
310
- **Graceful failure handling**: Skip unavailable hosts with clear warnings
311
- **Connection testing**: SSH connectivity validation before deployment
312
- **Error reporting**: Clear status messages for each operation step
313

            
314
#### Deployment Features
315
- **Complete installation**: Automated install, configure, and start services
316
- **Service management**: Start, restart, stop remote AutoNAS services
317
- **Status monitoring**: Remote status checking and health validation
318
- **Cleanup operations**: Temporary file cleanup on target systems
319

            
320
#### Command Operations
321
- **install**: Complete AutoNAS installation and configuration
322
- **start/restart/stop**: Service lifecycle management
323
- **status**: Health check and configuration validation
324
- **cleanup**: Temporary file removal
325
- **help**: Comprehensive usage documentation
326

            
327
#### Documentation Consolidation
328
- **Merged TECHNICAL.md into README.md**: Complete technical documentation in single file
329
- **Enhanced architecture section**: Detailed component descriptions and workflows
330
- **Comprehensive troubleshooting**: Technical debugging and extensibility guides
331
- **Unified documentation**: Single source of truth for all AutoNAS information
332

            
333
## [v2.1.0] - 2024-12-02
334

            
335
### 🚀 udev Context Improvements
336

            
337
#### Simplified Execution Strategy
338
- **Direct systemd execution**: Removed unreliable direct execution in udev context
339
- **Guaranteed privilege handling**: All mount operations now run through systemd service
340
- **Improved reliability**: Eliminates "permission denied" issues in restricted udev context
341
- **Consistent behavior**: Same execution path for all environments
342

            
343
#### Enhanced Logging
344
- **Streamlined logging**: Clear indication of systemd service usage
345
- **Better debugging**: Simplified troubleshooting without fallback complexity
346

            
347
## [v2.0.0] - 2024-12-02
348

            
349
### 🚀 Major Features Added
350

            
351
#### Intelligent Device Detection
352
- **Multiple device type support**: USB storage, SCSI removable, USB-to-SATA bridges
353
- **UUID-based identification**: Precise device matching via filesystem UUID
354
- **Smart udev rules**: Comprehensive detection for various hardware configurations
355

            
356
#### Enhanced User Experience
357
- **Interactive configuration helper**: `autonas-config.sh` with guided setup
358
- **UUID parameter support**: Pre-populate UUIDs in `add` and `test` commands
359
- **Automatic mounting post-configuration**: Immediate disk availability after setup
360
- **Standardized NFS configuration**: Optimized settings applied automatically
361

            
362
#### Advanced System Integration
363
- **udev wrapper**: Prevents timeout issues with asynchronous execution
364
- **Intelligent IP management**: Shared IP handling across multiple disks
365
- **Comprehensive logging**: Structured logging with proper syslog tags
366
- **Error handling and recovery**: Robust failure handling with detailed reporting
367

            
368
### 🛡️ Data Protection & Safety
369

            
370
#### Installation Safety
371
- **Configuration preservation**: Existing `disks.conf` files are never overwritten
372
- **User data detection**: Automatically detects and preserves user configurations
373
- **Template system**: New installs get templates, upgrades preserve data
374

            
375
#### Uninstallation Safety
376
- **Data-preserving uninstall**: User configurations and mount points preserved
377
- **Selective cleanup**: Only removes AutoNAS components, keeps user data
378
- **Manual cleanup guidance**: Clear instructions for complete removal if desired
379

            
380
### 🔧 Configuration Management
381

            
382
#### Simplified Configuration Process
383
```bash
384
# Old method (manual editing)
385
sudo nano /etc/pve/autonas/disks.conf
386

            
387
# New method (guided interactive)
388
sudo autonas-config.sh add <UUID>
389
```
390

            
391
#### Smart Validation
392
- **UUID format validation**: Proper 8-4-4-4-12 hex format checking
393
- **Disk name validation**: Character restrictions and reserved name checking
394
- **Network interface validation**: Real-time interface existence checking
395
- **IP address validation**: Format and availability checking
396

            
397
#### Enhanced Commands
398
- **`autonas-config.sh add [UUID]`**: Interactive configuration with optional UUID
399
- **`autonas-config.sh test [UUID]`**: Configuration testing with optional UUID
400
- **`autonas-config.sh list`**: Formatted display of all configurations
401
- **`autonas-config.sh remove`**: Interactive configuration removal
402

            
403
### 🌐 Network & NFS Improvements
404

            
405
#### Standardized NFS Configuration
406
```
407
*(rw,all_squash,insecure,async,no_subtree_check,anonuid=0,anongid=0)
408
```
409
- **Optimized for performance**: Async writes with no_subtree_check
410
- **Security balanced**: all_squash with root mapping for compatibility
411
- **Wide compatibility**: insecure flag for broader client support
412

            
413
#### Intelligent IP Management
414
- **Shared IP support**: Multiple disks can use the same IP address
415
- **Smart cleanup**: IPs only removed when no longer in use
416
- **Automatic configuration**: IP setup integrated with disk mounting
417

            
418
### 🔍 Monitoring & Debugging
419

            
420
#### Enhanced Logging System
421
- **Structured logging**: Separate tags for different components
422
  - `autonas`: Main manager operations
423
  - `autonas-wrapper`: udev wrapper operations
424
  - `autonas-config`: Configuration helper operations
425
- **Informative messages**: Clear indication of actions and results
426
- **Debugging support**: Detailed error reporting with context
427

            
428
#### Monitoring Commands
429
```bash
430
# Live monitoring all AutoNAS components
431
journalctl -t autonas -t autonas-wrapper -t autonas-config -f
432

            
433
# Component-specific monitoring
434
journalctl -t autonas --since "10 minutes ago"
435

            
436
# udev debugging
437
udevadm monitor --subsystem-match=block
438
```
439

            
440
### 📁 Project Structure Improvements
441

            
442
#### Organized Component Structure
443
```
444
autoNAS/
445
├── README.md                   # User documentation
446
├── TECHNICAL.md               # Technical documentation
447
├── CHANGELOG.md               # This file
448
├── config/
449
│   ├── disks.conf              # Configuration template
450
│   ├── 99-autonas-disk.rules   # udev detection rules
451
│   └── autonas-attach@.service # systemd fallback service
452
└── scripts/
453
    ├── autonas-manager.sh      # Main disk management
454
    ├── autonas-udev-wrapper.sh # udev timeout prevention
455
    ├── autonas-config.sh       # Interactive configuration
456
    ├── install.sh              # Safe installation
457
    └── uninstall.sh            # Safe uninstallation
458
```
459

            
460
#### Documentation Overhaul
461
- **Complete README**: Comprehensive user guide with examples
462
- **Technical documentation**: Developer-focused implementation details
463
- **Inline comments**: Extensive code documentation for maintainability
464

            
465
### ⚡ Performance Optimizations
466

            
467
#### udev Integration
468
- **Timeout prevention**: Asynchronous wrapper prevents udev blocking
469
- **Background processing**: Non-blocking device handling
470
- **Immediate feedback**: Quick udev response with background operations
471

            
472
#### File System Operations
473
- **UUID-based mounting**: Consistent device identification
474
- **Optimized mount points**: Organized `/mnt/autonas/` structure
475
- **Efficient configuration parsing**: Fast config file processing
476

            
477
### 🔒 Security Enhancements
478

            
479
#### File Permissions
480
- **Proper ownership**: All scripts owned by root:root
481
- **Secure permissions**: 755 for scripts, 644 for configs
482
- **Protected configuration**: Config files not world-writable
483

            
484
#### NFS Security
485
- **User mapping**: all_squash prevents privilege escalation
486
- **Anonymous mapping**: anonuid=0,anongid=0 for consistent access
487
- **Performance vs security**: Balanced configuration for practical use
488

            
489
### 🧪 Testing & Validation
490

            
491
#### Configuration Testing
492
- **Real-time validation**: Test configurations against current system state
493
- **Device detection**: Check if UUIDs correspond to actual devices
494
- **Network validation**: Verify interface existence and IP availability
495

            
496
#### Integration Testing
497
- **Manual testing support**: Commands for manual mount/unmount testing
498
- **Status verification**: Built-in checks for successful operations
499
- **Rollback capability**: Automatic cleanup on operation failures
500

            
501
### 🚨 Error Handling Improvements
502

            
503
#### Graceful Failure Handling
504
- **Descriptive error messages**: Clear indication of what went wrong
505
- **Suggested remedies**: Specific commands to fix common issues
506
- **Logging preservation**: All errors logged for later analysis
507

            
508
#### Recovery Mechanisms
509
- **Automatic rollback**: Failed operations clean up after themselves
510
- **State consistency**: System left in known good state after failures
511
- **Manual recovery**: Clear instructions for manual intervention when needed
512

            
513
### 📖 Breaking Changes
514

            
515
#### Configuration Format
516
- **No breaking changes**: Existing configurations continue to work
517
- **Enhanced format**: New configurations use optimized NFS settings
518
- **Backwards compatibility**: Old configurations preserved during upgrades
519

            
520
#### Command Interface
521
- **Extended syntax**: Commands now accept optional parameters
522
- **Backwards compatibility**: Old syntax continues to work
523
- **Enhanced features**: New parameters provide additional functionality
524

            
525
### 🔄 Migration Guide
526

            
527
#### From Manual Configuration
528
If you've been manually editing configuration files:
529
1. **Backup existing configs**: `sudo cp /etc/pve/autonas/disks.conf ~/backup.conf`
530
2. **Run installer**: `sudo bash scripts/install.sh` (preserves existing configs)
531
3. **Use new tools**: `autonas-config.sh list` to see current configurations
532

            
533
#### From Previous AutoNAS Version
534
1. **Safe upgrade**: `sudo bash scripts/install.sh` automatically preserves data
535
2. **New features**: Start using `autonas-config.sh add <UUID>` for new disks
536
3. **Enhanced monitoring**: Use new logging commands for better visibility
537

            
538
### 🎯 Future Roadmap
539

            
540
#### Planned Features
541
- **Web interface**: GUI for configuration management
542
- **Notification system**: Email/webhook notifications for disk events
543
- **Health monitoring**: SMART data integration and disk health reporting
544
- **Cloud integration**: Automatic cloud backup triggers
545

            
546
#### Performance Improvements
547
- **Parallel processing**: Concurrent handling of multiple disk operations
548
- **Caching**: Configuration caching for faster operations
549
- **Optimization**: Further NFS and mount option tuning
550

            
551
#### Security Enhancements
552
- **TLS support**: Encrypted NFS where supported
553
- **Access control**: Per-disk user/group restrictions
554
- **Audit logging**: Enhanced security logging for compliance
555

            
556
---
557

            
558
### 📝 Notes
559

            
560
- **Semantic versioning**: AutoNAS follows semver for version numbering
561
- **Stability focus**: All changes prioritize data safety and system stability
562
- **Community feedback**: Features developed based on user needs and feedback
563

            
564
For detailed technical information, see [TECHNICAL.md](TECHNICAL.md).
Bogdan Timofte authored 3 months ago
565
For user documentation, see [README.md](README.md).