Difference between pages "Solid State Drives (SSD)" and "Idea Basket"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
(applied a layout for this page as a starting guide)
 
m (flag for deletion, old as the hills, unmaintained and issues about gentoo / old wiki & bug tracker.)
 
Line 1: Line 1:
{{PageNeedsUpdates}}
{{delete}}
Solid State Drives (SSDs)...


=Preparation=
The idea basket is a dumping ground for unclassified ideas.
{{SectionNeedsUpdates}}
Partitioning
* MBR/GPT partitioning
* LVM
pvcreate --data-alignment 512 (equal to value given as chunksize) ?default? --data-alignment-offset (should not be needed for correctly aligned partitions)<br />
vgcreate -s 4M (default)<br />
* mdadm RAID
mdadm -c 512  Aligns chunksize to 512KB erase block size times 1 data disk (for raid1)<br />
mkfs.ext4 -b 4096 -E stride=128,stripe_width=128 (erase block size / 4096) (for raid1)<br />
mkfs.xfs -b 4096 -d sunit=1024,swidth=1024 OR -d su=512K,sw=512K (for raid1)
* Encrypted with dmcrypt/LUKS
cryptsetup luksFormat --align-payload 2048 (default)<br />
cryptsetup luksOpen --allow-discards<br />
<br />
File systems
* EXT4


* ZFS
* Compare merged files against in-use files to indicate what processes need to be restarted. This is particularly important for security updates since the outdated Apache will keep on running even if you update the on-disk binary. It needs to be restarted to be effective.
* Others
* Create a better issue-tracking/wiki integration.
 
* There were ideas for a portage-ng at one point: http://web.archive.org/web/20050404003507/http://www.gentoo.org/proj/en/portage/portage-ng/systemspec.xml
=Installation=
* Teach Portage about cross-compiling dependencies so it can bootstrap on its own. I think this could also do away with crossdev (which reportedly isn't working on Funtoo anyway) and would do away with special bootstrap scripts. As an example, compiling gcc with CHOST=i686-pc-linux-gnu, CBUILD=x86_64-unknown-linux-gnu, and ROOT=/x86_64-root should look in the package database on ${ROOT} for an appropriate binutils installation. If that is lacking, even if binutils is installed on the host, it will pull in binutils and cross-compile it appropriately for the other root.
{{SectionNeedsUpdates}}
* Teach Portage how to merge in all reverse dependencies of a package. That should address preserved-rebuild as well as revdep-rebuild types of issues.
''(Optional) Clearing SSD Memory Cells''<br />
* Teach Portage the types of CFLAGS that change ABI so it can rebuild system appropriately if an ABI-changing CFLAG is desired.
'''WARNING'''<br />
* Teach Portage about some sort of src_profile target so that compiler profiling can be used to make more intelligent optimization decisions.
Avoid using dd command to overwrite data on SSD. The SSD controller has its own algorithms for allocating writes based on its internal topology. Trying to overwrite data the usual way (e.g. dd if=/dev/zero of=/dev/sda ) is not only futile but will reduce the remaining number of writes to the flash cells. To inform the controller that all data can be purged use hdparm --security-erase. <ref>https://wiki.archlinux.org/index.php/SSD_Memory_Cell_Clearing</ref><br />
 
'''Partition creation and alignment'''<br />
The default alignment of 1MiB provides for proper SSD performance. For gdisk, ensure each partition starts at integer multiple of 2048 (sectors). If you change gdisk's default boundary then the default for other programs may change as a result.
 
'''Create File Systems'''
 
'''/etc/fstab, mount'''
 
=SSD Optimization=
{{SectionNeedsUpdates}}
'''Enable TRIM'''
 
'''Mount Options'''<br />
noatime
 
'''I/O Scheduler'''
 
'''Use tmpfs for /tmp, /var/tmp, etc.'''

Revision as of 14:41, December 1, 2014

   Warning

This page has been proposed for deletion because it does not meet the Editing Guidelines.
If you disagree, please discuss it here.


The idea basket is a dumping ground for unclassified ideas.

  • Compare merged files against in-use files to indicate what processes need to be restarted. This is particularly important for security updates since the outdated Apache will keep on running even if you update the on-disk binary. It needs to be restarted to be effective.
  • Create a better issue-tracking/wiki integration.
  • There were ideas for a portage-ng at one point: http://web.archive.org/web/20050404003507/http://www.gentoo.org/proj/en/portage/portage-ng/systemspec.xml
  • Teach Portage about cross-compiling dependencies so it can bootstrap on its own. I think this could also do away with crossdev (which reportedly isn't working on Funtoo anyway) and would do away with special bootstrap scripts. As an example, compiling gcc with CHOST=i686-pc-linux-gnu, CBUILD=x86_64-unknown-linux-gnu, and ROOT=/x86_64-root should look in the package database on ${ROOT} for an appropriate binutils installation. If that is lacking, even if binutils is installed on the host, it will pull in binutils and cross-compile it appropriately for the other root.
  • Teach Portage how to merge in all reverse dependencies of a package. That should address preserved-rebuild as well as revdep-rebuild types of issues.
  • Teach Portage the types of CFLAGS that change ABI so it can rebuild system appropriately if an ABI-changing CFLAG is desired.
  • Teach Portage about some sort of src_profile target so that compiler profiling can be used to make more intelligent optimization decisions.