Điều gì xảy ra khi dữ liệu được ghi vào Solid State Disk xứng đáng với một số bài viết (tóm tắt tốt ở đây ), vì nó rất phức tạp và phụ thuộc vào công nghệ cơ bản. Câu chuyện ngắn là SSD nói chung không thể ghi bit 0 vào bộ nhớ. Thay vào đó, họ phải loại bỏ toàn bộ (xóa) toàn bộ phần bộ nhớ và sau đó họ có thể lưu trữ dữ liệu sau đó bằng cách chỉ ghi những phần đó vào đó. Thông thường ngày nay họ viết các khối 512 byte nhưng xóa một trang 8 khối là 4096. Điều này và thực tế là mỗi chu kỳ ghi / xóa gây ra một số hao mòn vật lý của bộ nhớ và bộ nhớ cuối cùng bị hao mòn, làm cho SSD trở nên khác biệt hơn là quay ổ cứng từ tính.
Đặt sang một bên, các ổ đĩa SATA (và các ổ AFAIK SAS) không thực hiện lệnh gốc để sao chép dữ liệu từ một lĩnh vực này sang một lĩnh vực khác. (Hoặc ít nhất không có gì trong thông số SATA hoặc SAS yêu cầu chúng phải có, vì vậy HĐH không thể dựa vào lệnh như vậy.) Vì vậy, một bản sao tệp trên một phân vùng sẽ liên quan đến việc đọc dữ liệu từ một ổ đĩa vào bộ nhớ máy chủ và sau đó ghi nó quay trở lại ổ đĩa ở một khu vực khác.
Điều này là do liên quan đến HĐH, một ổ đĩa là một tập hợp các lĩnh vực logic được đánh số và tất cả những gì nó có thể làm là đọc từ các lĩnh vực và ghi vào các lĩnh vực. HĐH không thể yêu cầu ổ đĩa sắp xếp lại các cung.
Hơn nữa, hệ thống tệp (HFS +, NTFS, ext3, v.v.) là một tập hợp các cấu trúc dữ liệu áp đặt trật tự trên một tập hợp các khối logic. Các cấu trúc dữ liệu đó thực hiện "tệp", "tên tệp", "thư mục", "quyền", v.v. Vì vậy, có, khi bạn di chuyển tệp từ thư mục này sang thư mục khác, nó không được sao chép; chỉ dữ liệu hệ thống tệp cho biết thư mục nào trong tệp được cập nhật.
Khái niệm của một phân vùng là nó là một tập hợp các thành phần logic trên ổ đĩa được yêu cầu bởi một hệ thống tệp duy nhất. Hệ quả của điều đó là một hệ thống tệp có thể không truy cập vào các cung bên ngoài phân vùng của nó. Phần lớn đây là một tính năng an toàn, nhưng nó cũng xuất phát từ thực tế là các cấu trúc dữ liệu của hệ thống tệp được xây dựng xung quanh kế toán cho mọi khu vực của ổ đĩa thuộc quyền sở hữu của hệ thống tệp và việc thêm hoặc xóa các thành phần không tầm thường đến những cấu trúc đó. Đây là lý do tại sao bạn phải chạy các thói quen đặc biệt để điều chỉnh kích thước của phân vùng và cũng là lý do tại sao các hệ thống tệp cứ khăng khăng chạy trên một tập hợp các khu vực liền kề.
Vì vậy, sẽ không thực tế và nguy hiểm khi thực hiện sao chép tệp khi chỉ chuyển các ngành từ hệ thống tệp này sang hệ thống tệp khác. Trên một ổ đĩa từ tính quay vòng, nó cũng sẽ là một cơn ác mộng về hiệu suất, bởi vì mặc dù ổ đĩa sẽ tạo ra ngoại lệ cho các thành phần xấu, nhưng nói chung, nó sắp xếp cho các khu vực được định vị theo cách vật lý để tối ưu hóa tốc độ đọc và ghi liên tục các ngành.
Ngoài ra, 2 hệ thống tệp có thể không lưu trữ dữ liệu tệp theo cùng một cách trên đĩa, có nghĩa là các thành phần hoán đổi sẽ không hoạt động ngay cả khi nó thực tế. Ngay cả khi chúng là cùng loại hệ thống tệp, giả sử NTFS, một loại có thể đang sử dụng mã hóa hoặc nén và loại kia thì không, hoặc cả hai có thể mã hóa dữ liệu, nhưng bằng các khóa khác nhau. Không yêu cầu dữ liệu trong tệp phải chính xác là những gì được lưu trữ trên đĩa, tất cả những gì phải lưu trữ là một chuyển đổi có thể đảo ngược của dữ liệu, để hệ thống tệp có thể lấy dữ liệu của tệp bằng cách thực hiện điều gì đó với dữ liệu trên đĩa. Vì vậy, trừ khi cả hai hệ thống tệp đang sử dụng chính xác cùng một phép chuyển đổi, chỉ cần hoán đổi các thành phần sẽ không hoàn thành mục tiêu chuyển dữ liệu tệp.
Vì tất cả những lý do này, công việc của các nhà văn và hệ thống tập tin hệ điều hành chỉ là quá nhiều công việc để tối ưu hóa việc di chuyển trên các phân vùng cho SSD. Vì vậy, bất kỳ di chuyển phân vùng chéo sẽ là đọc và viết.
Bên trong SSD, đó là một câu chuyện hơi khác. Mặc dù HĐH không cho biết ổ đĩa đang sao chép dữ liệu từ nơi này sang nơi khác, nhưng việc ghi vào ổ SSD rất tốn kém (và phức tạp) đến nỗi bộ điều khiển SSD phải làm rất nhiều việc để giảm thiểu việc ghi. Một số ổ SSD đã cố gắng phát hiện khi một khu vực được ghi vào bộ lưu trữ khớp với một khu vực đã được lưu trữ và đánh dấu phần bộ nhớ vật lý đó hiện đang ánh xạ tới 2 khu vực logic khác nhau thay vì sao chép nó, làm ở cấp ổ đĩa bên trong Hệ điều hành không thể.
Nhưng đừng tin vào điều đó.
mv
sẽ phải hợp tác, trộn các lớp trừu tượng rất nhiều.