This document introduces how to use Cloud File Storage (CFS) instances in various scenarios and functional modules of Tencent Cloud TI-ONE Platform (TI-ONE).
1. CFS Introduction
CFS is a distributed file storage system provided by Tencent Cloud. It offers scalable shared file storage services and can be used in conjunction with other Tencent Cloud services, such as Cloud Virtual Machine (CVM). CFS supports the standard Network File System (NFS) protocol, serving as a shared data source for multiple CVM instances. It supports elastic scaling of capacity and performance. Existing applications can mount and use CFS instances without modification. It is a highly available, highly reliable distributed file system, suitable for scenarios such as big data analysis, media processing, and content management.
2. Basic Usage of CFS
CFS storage is used by mounting. CFS supports mounting on both Linux and Windows operating systems. Since TI-ONE primarily uses Linux, this document only covers the usage of CFS on Linux.
CFS instances are mounted on Linux using the mount command. For more information, see Using CFS Instances on Linux Clients. The mount command requires specifying the source directory of the partition to be mounted and the mount path on the target system (such as a CVM instance or a container), enabling access to the partition's files on the target system.
On TI-ONE, you do not need to deal with the details of the mount command. You only need to specify the CFS path and the target mount path when using the Task-based Modeling or Dev Machines module.
3. Networking Modes for CFS
CFS storage specifications include the General series and the Turbo series. The Turbo series features high IOPS and is more suitable for high-performance computing scenarios in AI. For more information about the differences between CFS specifications, see Storage Types and Specifications. You can purchase an appropriate instance based on your requirements and budget.
It is important to note that:
CFS General series supports only the Virtual Private Cloud (VPC) networking mode: When creating a CVM instance, you need to specify the VPC network where the CFS instance resides. Subsequent CVM instances that access this CFS instance need to be within the VPC network or interconnected with it through Cloud Connect Network (CCN). For more information, see Cross-AZ and Cross-Network Guide.
CFS Turbo series supports both the VPC networking mode and the CCN networking mode. For more information, see Selecting a Network for Turbo CFS.
VPC networking mode: When you create a CFS instance, specify the VPC network to which the CFS instance belongs. Subsequent CVM instances that access this CFS instance need to be within the VPC network or interconnected with it through CCN.
CCN networking mode: When you create a CFS instance, specify a CCN instance. All VPC networks added to this CCN instance can access the CFS instance.
4. CFS Usage Patterns in TI-ONE Scenarios
When you use TI-ONE in scenarios such as deep learning or LLM training/fine-tuning, we recommend that you use CFS to store training/inference materials, including code, training models, training data sets, and so on.
TI-ONE supports the following scenarios:
Pay-as-you-go: You use CVM instances provided by TI-ONE for dev machine development or task-based modeling, and you need to mount your own CFS storage to the CVM instances. In this mode, TI-ONE is responsible for establishing network connectivity between the CVM instances and your CFS storage.
Managing your CVM instances based on yearly/monthly subscription: After purchasing CVM instances in the CVM console, you can manage these instances on TI-ONE for dev machine development or task-based modeling. You need to mount your own CFS storage to your CVM instances. In this mode, you must ensure network connectivity between your instance resources and CFS storage.
5. Differences in Using CFS with Different Networking Modes in TI-ONE Scenarios
Scenario 1: Pay-as-You-Go Mode for TI-ONE + VPC Networking Mode for CFS
CVM instances are under the TI-ONE account, while the CFS instances are under your own account. They are inherently in different VPC networks. Therefore, TI-ONE automatically establishes network connectivity between its VPC network and the VPC network where your CFS instance resides. You do not need to deal with the network connectivity details. In this scenario, you only need to specify any VPC network under your account when creating your CFS instance.
Note:
If you need to mount multiple CFS instances within a single dev machine or a single task-based modeling task, you need to ensure these CFS instances are in the same VPC network or within the same CCN instance..
Scenario 2: Pay-As-You-Go Mode for TI-ONE + CCN Networking Mode for CFS
CVM instances are under the TI-ONE account, while the CFS instances are under your own account, and this CFS instance has been added to a CCN instance under your account. TI-ONE automatically establishes CCN network connectivity between its VPC network and your CFS instance. You do not need to deal with the network connectivity details.
Note:
Due to certain limitations of CCN, failures may occur in this scenario. If you encounter issues, you can contact us for support and troubleshooting.
If you need to mount multiple CFS instances within a single dev machine or a single task-based modeling task, you need to ensure these CFS instances are in the same VPC network or within the same CCN instance..
Scenario 3: Self-Managed Resource Management Mode for TI-ONE + VPC Networking Mode for CFS
Both the CVM instances and the CFS instance are under your own account. You need to ensure network connectivity between the CFS instances and the CVM instances. Connectivity can be achieved either by placing them in the same VPC network or by establishing connectivity through CCN. For more information, see Cross-AZ and Cross-Network Access Guide .
Note:
If you need to mount multiple CFS instances within a single dev machine or a single task-based modeling task, you need to ensure network connectivity between these CFS instances and the CVM instances you manage on TI-ONE.
Scenario 4: Self-Managed Resource Management Mode for TI-ONE + CCN Networking Mode for CFS
Both the CVM instances and the CFS instances are under your own account. You need to ensure network connectivity between the CFS instances and the CVM instances. You can achieve this by adding the VPC network containing your CVM instances to the CCN instances where your CFS instance resides. For more information about CCN, see CCN Overview.
Note:
If you need to mount multiple CFS instances within a single dev machine or a single task-based modeling task, you need to ensure network connectivity between these CFS instances and the CVM instances you manage on TI-ONE.
6. Different Usage Scenarios for Mounting CFS Instances
Scenario 1: Using a CFS Instance in a Dev Machine
After a CFS instance is created, the default root directory / is empty. You can mount the CFS instance to a CVM instance and then upload or create files, or you can mount and use the CFS instance in a dev machine.
When you create a dev machine, to ensure the dev machine can be used properly, the first CFS storage path you select is mounted to the default working directory /home/tione/notebook of the dev machine.
You can specify the root directory of the CFS instance or any directory you created as the source path. The contents in the specified directory are mounted to /home/tione/notebook.
The following examples show the mappings between the mount path and the dev machine path.
Example 1:
CFS Source Path / | Dev Machine Path /home/tione/notebook |
/ | /home/tione/notebook |
/data | /home/tione/notebook/data |
/model | /home/tione/notebook/model |
/code | /home/tione/notebook/code |
Example 2:
CFS Source Path /user01 | Dev Machine Path /home/tione/notebook |
/user01 | /home/tione/notebook |
/user01/data | /home/tione/notebook/data |
/user02 | Inaccessible |
Scenario 2: Using a CFS Instance in Data Preprocessing
Data Preprocessing Input
Assume you have created a dev machine for a data preprocessing pipeline in the single-turn Q&A format and mounted a CFS instance. The CFS source directory for mounting is /, and the target mount directory is /home/tione/notebook.
After accessing the dev machine, the system creates script tools for data preprocessing and their corresponding directories under your mounted source directory / (that is, the mount directory /home/tione/notebook of the dev machine). You can upload relevant data to this directory for processing.
The directory format of the script tool is mount path/<nb-id>/<ppl-type>/raw_dataset_files.
Where:
ppl-type is the selected data preprocessing pipeline type. single_round_qa_pipeline indicates a single-turn Q&A pipeline. multi_round_qa_pipeline indicates a multi-turn Q&A pipeline. unsupervised_pipeline indicates an unsupervised pipeline.
nb-id is the ID of the current dev machine. You can view the ID via the URL. Do not be misled by the / directory displayed in the dev machine file bar. The default directory for opening the dev machine is /home/tione/notebook, which is the source directory you mounted. You can open the terminal and enter the pwd command to view the current path.
single_round_qa_pipeline is the script path for the single-turn Q&A pipeline. When you select a multi-turn or unsupervised pipeline, the path is different.
After accessing the ppl-type directory, you can refer to the quick_start.ipynb guide to perform further data preprocessing operations.
Data Preprocessing Output
After you complete the data preprocessing operations, since the CFS instance is mounted, the actual output files are already stored in your CFS storage. Therefore, if you need to use them in Task-based Modeling, you need to map the CFS path.
Example 1:
CFS Source Path | / |
Dev Machine Output Path | /home/tione/notebook/nb-1023096325327389312/single_round_qa_pipeline/final_dataset_files/SelfMade_NL2SQLpilot_for_training.jsonl |
Actual CFS Path | /nb-1023096325327389312/single_round_qa_pipeline/final_dataset_files/SelfMade_NL2SQLpilot_for_training.jsonl |
Example 2:
CFS Source Path | /user01 |
Dev Machine Output Path | /home/tione/notebook/nb-1023096325327389312/single_round_qa_pipeline/final_dataset_files/SelfMade_NL2SQLpilot_for_training.jsonl |
Actual CFS Path | /user01/nb-1023096325327389312/single_round_qa_pipeline/final_dataset_files/SelfMade_NL2SQLpilot_for_training.jsonl |
Scenario 3: Using a CFS Instance in Task-based Modeling
When using Task-based Modeling, you can store the corresponding code, model files, and data sets in a CFS instance and access them by mounting.
Note the mapping relationships of mount directories. Taking an LLM fine-tuning case as an example, you can see Fine-Tuning a Custom LLM Using Task-based Modeling.
Assume that during the dev machine phase, after you debug the following code, model, and data, the final data resides under the CFS path /data/custom.
File Type | CFS Source Path /data/custom | Dev Machine Mount Path /home/tione/notebook |
model | /data/custom/model | /home/tione/notebook/model |
data | /data/custom/llm/data | /home/tione/notebook/llm/data |
code | /data/custom/llm/code | /home/tione/notebook/llm/code |
Then you proceed with task-based modeling. Since task-based modeling differs from dev machines, data is typically mounted under /opt/ml for processing.
File Type | CFS Source Path | Mount Path of Task-based Modeling |
model | /data/custom/model | /opt/ml/pretrain_model |
dataset | /data/custom/llm/data | /opt/ml/input/data/train |
code | /data/custom/llm/code | /opt/ml/input/data/code |
output | /data/custom/llm/output | /opt/ml/output |
Note:
In the task-based modeling code, when you need to read data or models, use the mount path of task-based modeling. You can see Fine-Tuning a Custom LLM Using Task-based Modeling, download the sample code according to the guide, and test it.
Scenario 4: Using a CFS Instance in Online Services
Loading Models Directly from a CFS Instance
In LLM scenarios, models are generally large. The recommended workflow is: use a dev machine mounted with a CFS instance to debug training code; use Task-based Modeling mounted with the CFS instance to execute distributed training tasks; finally, store the fine-tuned model on the CFS instance. The Online Services module for TI-ONE inference scenarios supports reading model files directly from the CFS instance. In this case, you only need to specify the absolute path of your model files in the CFS instance.
Note:
Some bare metal physical servers (such as HCC A100 and HCC V100 instance types) do not support elastic network interfaces and therefore cannot support mounting CFS Turbo instances.
Example:
After task-based modeling is completed, if we store the trained model to the path /opt/ml/output/model/saved_model.pb, then the corresponding CFS path is /data/custom/llm/output/model/saved_model.pb.
| CFS Source Path | Mount Path of Task-based Modeling |
output | /data/custom/llm/output | /opt/ml/output |
Using a CFS Instance as Temporary Storage When Importing Models from the Model Repository
After your model is registered in the model repository, you can import it from the repository to create an online service.
In the pay-as-you-go billing mode, the default total size of model packages supported by local disks is approximately 45 GB. In the yearly/monthly subscription billing mode, model packages are stored on the disks mounted to the resource group nodes.
When your model package size exceeds the limit, you need to configure an additional CFS instance. The platform automatically uses the CFS instance to store the model. In this case, you need to select a CFS instance and configure an empty CFS path. When the online service runs, this path is mounted, and the model files from the model repository are copied to this path for service startup loading.
When the online service is stopped or updated, the platform cleans up the files under this CFS source path by default. Ensure there is no other data in this path.
Note:
Some bare metal physical servers (such as HCC A100 and HCC V100 instance types) do not support elastic network interfaces and therefore cannot support mounting CFS Turbo instances.
7. How to Implement Directory Isolation Between Sub-accounts with CFS and CFS Turbo (Deprecated)
Note:
TI-ONE launched the data source management feature in July 2025. This feature supports registering directories of storage instances (CFS/GooseFSx) as data sources and configuring mount permissions for them.
After the data source management feature is launched, the solution described in this section, implementing directory isolation between sub-accounts based on tags, becomes deprecated. If you have configured directory permission policies according to this solution, see the data source management documentation for reconfiguration. If you encounter any questions during configuration, submit a ticket to contact us.
This section describes how to implement directory isolation between different sub-accounts within the same CFS or CFS Turbo instance by using tags.
Step 1: Creating a Tag
1. Log in to the Tag console. In the left sidebar, select Tag List. Select the Custom Tags tab and click Create Tag.
2. Specify the tag keys and values according to the following rules:
| Tag Key | Tag Value | Rule Description |
1 | tione_cfs_directory_isolation_rulelists | RuleA:RuleB:RuleC | If a CFS or CFS Turbo instance has a tag with the key tione_cfs_directory_isolation_rulelists, it is considered that this instance requires directory isolation between sub-accounts. Otherwise, global shared permissions apply. The tag value can contain multiple rules separated by colons (:). Multiple rules are combined into a union. The specific path for a rule is defined by the tag in No.3. |
2 | tione_cfs_default_effective_rulelists | RuleA | If a CFS or CFS Turbo instance, on top of the condition in No.1, also has a tag with the key tione_cfs_default_effective_rulelists, then the rule (RuleA) specified in the tag value is considered the default effective rule. This rule takes effect even if a sub-account does not have the tag described in No.4. Only one rule can be configured for this tag. If multiple rules are configured, one will be selected at random, indicating a configuration error. |
3 | RuleA | PathA:PathB:PathC | This defines a specific isolation rule. The tag key corresponds to a rule name specified in the tag values of No.1, No.2, or No.4. The tag value is the file path on the CFS or CFS Turbo instance to be isolated. Multiple paths are combined into a union. Each path must start with a forward slash (/) and can only contain English letters, digits, underscores (_), hyphens (-), and periods (.). Folder names within the path can only start with English letters, digits, or underscores (_). Special wildcards: 1. The path supports the wildcard <@subaccount>, which represents the sub-account UIN. For example, RuleA: /home/<@subaccount>. You only need to specify one path rule, and the UIN of the sub-account using the resource is automatically populated. 2. The path supports the wildcard <@subusername>, which represents the sub-account nickname. For example, RuleA: /home/<@subusername>. You only need to specify one tag path rule, and the nickname of the sub-account using the resource is automatically populated. |
4 | cfsidxx_cfs_directory_isolation | RuleA:RuleB | If a sub-account has a tag with the key cfsidxx_cfs_directory_isolation (where cfsidxx is the ID of a specific CFS or CFS Turbo instance), then the paths accessible by this sub-account on the instance are the intersection of the rules specified in this tag value (No.4) and the rules from tags No.1 and No.2. If a sub-account does not have this tag (No.4), it has no access permissions on this CFS instance. |
Step 2: Applying Tags to the CFS or CFS Turbo Instance
1. Log in to the CFS console. In the left sidebar, select File System. Select the instance for which you need to configure directory isolation. Click Edit Tags. Select the tag keys and tag values created in Step 1.
2. The CFS or CFS Turbo instance attached with the tag key tione_cfs_directory_isolation_rulelists requires directory isolation between sub-accounts. Otherwise, global shared permissions apply.
Step 3: Applying Tags to Sub-Accounts
1. Log in to the Cloud Access Management (CAM) console. In the left sidebar, select Users/User List. Select the sub-account for which you need to configure directory isolation. Click the username to go to the user details page. Click the edit icon for the tag field. Select the tag keys and tag values created in Step 1.
Step 4: Using the Tagged CFS or CFS Turbo Instance for Training and Inference
1. Log in to the TI-ONE console. In the left sidebar, select Training Workshop/Task-based Modeling. Click Create Task. Select your tagged CFS or CFS Turbo instance. After selection, the paths defined in the tags will appear. Select the desired path from the drop-down list.
2. Log in to the TI-ONE console. In the left sidebar, select Training Workshop/Dev Machine. Click Create Task. Select your tagged CFS or CFS Turbo instance. After selection, the paths defined in the tags will appear. Select the desired path from the drop-down list.
3. Log in to the TI-ONE console. In the left sidebar, select Model Services/Online Services. Click Create Service. Select your tagged CFS instance. After selection, the paths defined in the tags will appear. Select the desired path from the drop-down list.
Note:
1. If a path specified in the tag value does not comply with the rules, it will be grayed out and unavailable for selection in the console. Contact your Tencent Cloud account administrator to adjust the path configuration in the relevant tags.
2. Path rules: Each path must start with a forward slash (/) and can only contain English letters, digits, underscores (_), hyphens (-), and periods (.). Folder names within the path can only start with English letters, digits, or underscores (_).