Quản trị mạng – Trong phần ba của loạt bài này chúng tôi sẽ giới thiệu cho các bạn cách quản lý thư mục AppData\Roaming khi ảo hóa các thiết lập và dữ liệu của ứng dụng.
>> Phần 1: Công nghệ và một số vấn đề
>> Phần 2: Kịch bản
Khi một người dùng “roam” từ một máy tính này sang một máy tính khách trên mạng công ty, nhu cầu cơ bản là họ cần phải duy trì được sự tương đồng: tức có thể thực hiện nhiệm vụ của họ. Việc chuyển hướng các thư mục giống như My Documents và Desktop là một trong số thứ cần phải duy trì vì nó cho phép người dùng dễ dàng truy cập vào các file có liên quan đến công việc từ bất cứ máy tính nào mà họ muốn sử dụng trên mạng. Tuy nhiên đôi khi người dùng còn muốn nhiều hơn việc truy cập dữ liệu của họ - họ cũng muốn các ứng dụng mà họ sử dụng làm việc với dữ liệu như vậy có diện mạo, cảm nhận và thực hiện chính xác như những gì họ đã có mà không cần quan tâm tới máy tính mà họ đăng nhập là gì.
Các tùy chỉnh ứng dụng theo người dùng như vậy gồm có trạng thái của ứng dụng. Trạng thái của ứng dụng có thể gồm có cả thiết lập và dữ liệu. Các thiết lập ứng dụng theo người dùng được lưu trong registry, thường nằm bên trong mục HKEY_CURRENT_USERS (HKCU). Dữ liệu ứng dụng gồm có các file được lưu trên ổ cứng của người dùng và trên Windows Vista và Windows 7, các dữ liệu như vậy thường được lưu bên trong profile người dùng, trong thư mục AppData, một thư mục ẩn bên trong thư mục root profile của mỗi người dùng. Sau đây chúng ta hãy đi xem xét việc “roam” dữ liệu ứng dụng theo người dùng.
Việc roam dữ liệu ứng dụng theo người dùng
Dữ liệu ứng dụng theo người dùng được lưu trong thư mục AppData. Bên dưới thư mục AppData là ba thư mục con như mô tả trong bảng 1.
Thư mục con | Mục đích |
Local | Các thiết lập ứng dụng và Windows là các thiết lập theo người dùng nhưng không được roam hoặc là các thiết lập theo máy dùng và vì vậy không thể roam. |
LocalLow | Các thiết lập được sử dụng bởi các quá trình nào đó chẳng hạn như Internet Explorer Protected Mode. Các thiết lập này không thể roam. |
Roaming | Các thiết lập ứng dụng và Windows theo người dùng này có thể được roam. |
Như thể hiện trong bảng 2, các thư mục con Local và Roaming nằm Windows Vista hoặc Windows 7 đã có một số bản đối chiếu trong Windows XP.
Windows Vista và Windows 7 | Windows XP |
%USERPROFILE%\AppData\Local | %USERPROFILE%\Local Settings\Application Data |
%USERPROFILE%\AppData\LocalLow | (không có đối chiếu trong XP) |
%USERPROFILE%\AppData\Roaming | %USERPROFILE%\Application Data |
so với Windows XP
Kiểu dữ liệu Windows và ứng dụng được lưu thực sự trong thư mục AppData\Roaming là gì? Hầu hết những thứ bao gồm các shortcut mạng, shortcut máy in, các mục menu Send To, các mục gần đây của menu Start, các mẫu ứng dụng Microsoft Office và dictionary tùy chỉnh,… Hình 1 hiển thị thư mục AppData\Roaming và các thư mục con của nó trên máy tính Windows 7 đã cài đặt Office 2010.
Hình 1: Thư mục AppData\Roaming và các thư mục con của nó trên máy tính Windows 7 đã cài đặt Office 2010
Các nội dung của thư mục AppData\Roaming này có thể được roam theo hai cách:
- Nó có thể chuyển hướng hết profile của người dùng sang một chia sẻ mạng bằng cách sử dụng Folder Redirection (FR) (xem trong hình 2 bên dưới).
- Nó có thể được roam cùng với phần còn lại của profile người dùng bằng cách sử dụng Roaming User Profiles (RUP).
Hình 2: Thư mục AppData\Roaming có thể được chuyển hướng bằng Folder Redirection
Việc roam các thiết lập ứng dụng theo người dùng
Có nhiều thiết lập theo người dùng được lưu trong registry hơn là các file dữ liệu theo người dùng được lưu trong thư mục AppData\Roaming. Các thiết lập này được lưu bên trong HKCU của người dùng, chúng được lưu dưới dạng một file có tên NTUSER.DAT trong root của mỗi profile người dùng, điều đó có nghĩa các thiết lập này có thể được roam bằng cách sử dụng RUP. Cho ví dụ về các thiết lập Windows theo người dùng gồm có các thư như vậy như theme hiện hành của người dùng, lược đồ âm thanh, ảnh nền desktop, bộ bảo vệ màn hình, các thiết lập hiển thị, các thiết lập có thể truy cập, các thiết lập vùng và bàn phím, thiết lập báo cáo vấn đề, thiết lập tùy chỉnh Windows Explorer, các tùy chọn Internet Explorer, Windows Media Player…
Ví dụ về các thiết lập ứng dụng theo người dùng cho Office 2010 gồm có các thiết lập bảo mật, các tùy biến Ribbon, các entry được sử dụng gần đây nhất (MRU), tên người dùng,… Các thiết lập ứng dụng này được tìm thấy trong HKCU\Software\Microsoft\Office và hình 3 bên dưới hiển thị một số thiết lập ứng dụng theo người dùng cho Word 2010.
Hình 3: Các thiết lập ứng dụng theo người dùng cho Word 2010
Cách roam trạng thái ứng dụng
Do trạng thái ứng dụng (dữ liệu và các thiết lập ứng dụng theo người dùng) được lưu trong hai địa điểm (các file dữ liệu trong thư mục AppData\Roaming và các thiết lập trong HKCU của người dùng) nên bạn có một số lựa chọn về cách roam trạng thái ứng dụng cho tổ chức mình. Đặc biệt, bạn có thể:
- Phương pháp 1: Sử dụng RUP để roam cả hai HKCU của người dùng cùng với thư mục AppData\Roaming bên trong profile của người dùng.
- Phương pháp 2: Sử dụng RUP để roam HKCU của người dùng trong khi đó sử dụng FR để chuyển hướng hết toàn bộ thư mục AppData\Roaming của profile người dùng sang chia sẻ mạng.
- Phương pháp 3: Không sử dụng RUP, chỉ cần sử dụng FR để chuyển hướng toàn bộ thư mục AppData\Roaming của profile người dùng sang chia sẻ mạng.
Chúng ta hãy đi xem xét ưu và nhược điểm của mỗi phương pháp trên.
Phương pháp 1: Chỉ sử dụng RUP
Ưu điểm của phương pháp này là nó có thể đồng bộ dữ liệu ứng dụng và các thiết lập ứng dụng với nhau. Điều này là vì cả hai HKCU của người dùng và nội dung của thư mục AppData\Roaming sẽ được đồng bộ với nhau khi người dùng đăng nhập và đăng xuất. Đây là vấn đề quan trọng vì một số ứng dụng có thể không làm việc đúng cách và thậm chí có thể xảy ra hiện tượng đổ vỡ nếu các thiết lập ứng dụng được lưu trong HKCU không được đồng bộ với các dữ liệu của ứng dụng lưu trong thư mục AppData\Roaming.
Một ưu điểm nữa của phương pháp này thể hiện ở trường hợp phải thực hiện với các ứng dụng nào đó mà chúng sẽ không làm việc tốt khi chỉ một số thư mục con trong thư mục AppData\Roaming được roam. Trong các trường hợp như vậy, bạn có thể sử dụng thiết lập chính sách "Exclude directories in roaming profile" để không cho các thư mục con này được roam với RUP (hình 4), thiết lập nằm bên dưới Computer Configuration\Policies\Administrative Templates\System\User Profiles.
Hình 4: Các thiết lập chính sách để ngăn chặn các thư mục con profile người dùng được roam trong RUP.
Mặc dù vậy nhược điểm của phương pháp này là nó có thể làm tăng số lần đăng xuất và đăng nhập đối với người dùng. Điều này là vì nội dung của thư mục AppData\Roaming có thể thay đổi và sẽ tăng lên khá lớn theo thời gian. Việc kích thước của profile người dùng tăng có nghĩa rằng khi RUP được sử dụng, trải nghiệm đăng nhập và đăng xuất cho người dùng có thể trở nên nghèo nàn. Lưu ý rằng bắt đầu với Windows 7, có một thiết lập chính sách mới mang tên "Background upload of roaming user profile’s registry file while user is logged on" có trong User Configuration\Policies\Administrative Templates\System\User Profiles. Bằng cách kích hoạt và cấu hình thiết lập chính sách này, bạn có thể upload các thay đổi để roam profile trong chế độ background trong khi người dùng đăng nhập, điều này có thể giúp giảm số lần đăng nhập và đăng xuất của người dùng (xem hình 5). Tuy nhiên trong khi upload, việc roaming profile trong chế độ background có thể làm giảm cơ hội dữ liệu và thiết lập ứng dụng được đồng bộ, nó không giải quyết được vấn đề một cách hoàn toàn và cũng góp phần tăng lưu lượng trong mạng.
Hình 5: Thiết lập chính sách cho việc kích hoạt upload chế độ background.
Phương pháp 2: Sử dụng RUP nhưng sử dụng FR để chuyển hướng AppData\Roaming
Ưu điểm của phương pháp này là việc chuyển hướng nội dung của thư mục AppData\Roaming ra khỏi profile người dùng sẽ giảm được kích thước của profile, và vì vậy có thể cung cấp trải nghiệm đăng nhập và đăng xuất tốt hơn cho người dùng so với phương pháp trước. Trong kịch bản này, RUP sẽ đồng bộ HKCU với chia sẻ mạng trong khi Offline Files sẽ đồng bộ các nội dung của thư mục AppData\Roaming đã được chuyển hướng đến một chia sẻ mạng khác. Mặc dù vậy một lần nữa vấn đề trở thành việc giữ đồng bộ các thiết lập ứng dụng và dữ liệu với nhau cho các ứng dụng có hành vi nghèo nàn khi chúng không được đồng bộ đầy đủ. Trong trường hợp này, một thiết lập chính sách khác có thể được áp dụng để giải cứu, thiết lập đó là "Network directories to sync at logon/logoff time only", có trong User Configuration\Policies\Administrative Templates\System\User Profiles. Bằng cách kích hoạt và cấu hình thiết lập chính sách này, bạn có thể chỉ định các thư mục con nào đó bên dưới AppData\Roaming khi cần để chúng đồng bộ bằng Offline Files chỉ khi đăng nhập và đăng xuất (xem hình 6). Thực hiện như vậy cho các thư mục con nào đó có thể bảo đảm rằng dữ liệu và thiết lập cho các ứng dụng nào đó luôn được đồng bộ với nhau.
Hình 6: Thiết lập chính sách cho việc đồng bộ các thư mục được chuyển hướng chỉ khi có đăng nhập và đăng xuất bằng Offline Files
Phương pháp 3: Sử dụng FR để chuyển hướng AppData\Roaming nhưng không sử dụng RUP
Cuối cùng, điều gì sẽ xảy ra nếu người dùng chỉ cần truy cập vào các bộ từ điển tùy biến của Word cũng như các template khi họ tiến hành roam giữa các máy tính với nhau, tuy nhiên không cần các thiết lập tùy chỉnh khác cho Word? Do các bộ từ điển tùy biến của Word cũng như các template của nó được lưu trong AppData\Roaming, nên liệu có thể sử dụng FR để chuyển hướng thư mục này tới mạng và không sử dụng RUP?
Câu trả lời ở đây là không. Không chuyển hướng AppData\Roaming bằng FR trừ khi bạn cũng sử dụng RUP. Bằng không bạn sẽ thấy các ứng dụng của mình có các hành vi lạ và có thể dẫn đến đổ vỡ, tồi tệ nhất có thể gây mất dữ liệu và mất năng xuất.
Kết luận: Tầm quan trong của việc kiểm tra
Dòng cuối cùng về việc ảo hóa trạng thái ứng dụng mà chúng tôi có thể nói ở đây là bạn phải test giải pháp của mình trước khi triển khai nó vào môi trường sản xuất. Ngoài những lý do mà chúng tôi đã đề cập ở trên, còn có hai lý do quan trọng khác. Đầu tiên đó là, hầu hết các hãng phát triển ứng dụng đều không phiền muộn trong việc test ứng dụng của họ trong các môi trường roaming khác nhau để thấy chúng có thực sự là roaming đúng cách hay không. Thậm chí ngay cả Microsoft đã có lần gặp phải vấn đề như vậy. Cho ví dụ, khi Office 2007 được phát hành, người ta đã phát hiện ra rằng cấu hình của Quick Access Toolbar không roam. Microsoft sau đó đã sớm đưa ra một bản hotfix cho vấn đề này.
Thứ hai, một số các hãng có thể thực hiện lưu các thiết lập ứng dụng cấu hình người dùng nào đó bên ngoài HKCU hoặc lưu các file ứng dụng cấu hình người dùng bên ngoài thư mục AppData\Roaming. Kết quả là, các ứng dụng như vậy có thể không làm việc tốt khi tiến hành roaming các máy tính với nhau.
Vì vậy một thứ mà chúng tôi muốn nhắc các bạn ở đây là hãy test, test, và test trước khi triển khai và thực thi giải pháp USV có việc roaming trạng thái ứng dụng!